Что делать, когда база данных очень большая?

Главные вкладки

Аватар пользователя Sinkora Sinkora 4 сентября 2010 в 17:38

Что делать, когда переполнены записями такие, например, таблицы БД как "node", "comments" и т.д.?

Комментарии

Аватар пользователя Sinkora Sinkora 4 сентября 2010 в 18:01

"xxandeadxx" wrote:
что значит "переполнены"?

А что, количество записей может быть неограниченным?

"Переполнены" - когда слишком много записей в таблицах - сотни тысяч-миллионы строк...

Я тестировал один сайт - создал сотни тысяч нод, комментов... В итоге запросы стали выполняться намного медленнее. Очевидно, что в одну таблицу пичкать все комменты, ноды в конечном итоге нельзя...

Аватар пользователя Sinkora Sinkora 4 сентября 2010 в 18:27

В принципе неважно, какой именно предел. Дело в целесообразности работы с огромной таблицей... Т.к. как я говорил, производительность падает в разы...

4 294 967 295 строк - т.е. более 4-х миллиардов... Думаете, с такой таблицей будет эффективная работа? Уверен, что нет.

Аватар пользователя volocuga@drupal.org volocuga@drupal.org 4 сентября 2010 в 18:30

Sinkora: это из практической плоскости (уже припёрло) или чисто теоретически? Если второе (скорее всего) то почему бы просто не забить на это Smile

Аватар пользователя xxandeadxx xxandeadxx 4 сентября 2010 в 18:55

"Sinkora" wrote:
В принципе неважно, какой именно предел.

хм, по такой логике встаёт вопрос в целесообразности использовать drupal, mysql, php, apache, и т.д. Реальный пример приведите при какой конфигурации, при каком объёме данных, при какой посещаемости, при каких денежных затратах, и что начинает тормозить.

Аватар пользователя Stutzer Stutzer 4 сентября 2010 в 19:07

большие таблицы требуют оптимизированных запросов, грамотного использования индексов, кэширования и мощных серверов, специально выделенных под СУБД
Совсем большие таблицы требуют вертикального (таблицы разносятся по нескольким серверам) или горизонтального (записи таблиц разносятся по нескольким серверам) распределения.
Подробнее можете почитать здесь или здесь

Аватар пользователя Sinkora Sinkora 4 сентября 2010 в 19:43

"<a href="mailto:volocuga@drupal.org">volocuga@drupal.org</a>" wrote:
Sinkora: это из практической плоскости (уже припёрло) или чисто теоретически? Если второе (скорее всего) то почему бы просто не забить на это :)

Хех, так и знал, что такое кто-нибудь спросит. Даже не знаю, как ответить))

"xxandeadxx" wrote:
Реальный пример приведите при какой конфигурации, при каком объёме данных, при какой посещаемости, при каких денежных затратах, и что начинает тормозить.

Тестировал на пустом сайте на локалхосте))

"Stutzer" wrote:
Подробнее можете почитать здесь

Во, это интересно, спасибо!

Аватар пользователя Azerot Azerot 4 сентября 2010 в 20:03

Или юзать PostgreSQL вместо mysql. Правда гарантирована только поддержка базовой поставки, модули могут поддерживать PostgreSQL, а могут и нет

Аватар пользователя Виктор Степаньков ака RxB Виктор Степаньк... 5 сентября 2010 в 0:40

"xxandeadxx" wrote:
и никогда не будет :)

Нет, ну данный товарищ в одном топике писал что имеет проект, что-то вроде с 1500 уников или даже просмотров, но скоро, очень скоро, там всё перевалит за лям

Аватар пользователя Sinkora Sinkora 5 сентября 2010 в 0:44

"RxB" wrote:
Нет, ну данный товарищ в одном топике писал что имеет проект, что-то вроде с 1500 уников или даже просмотров, но скоро, очень скоро, там всё перевалит за лям

С кем-то спутал. Я такую чушь обычно не говорю))

Аватар пользователя Виктор Степаньков ака RxB Виктор Степаньк... 5 сентября 2010 в 1:47

"Sinkora" wrote:
С кем-то спутал. Я такую чушь обычно не говорю))

Ога. Говоришь такую http://drupal.ru/node/47641
Того поста не нашёл, но были рассуждения на тему "А вот у меня на проекте черех n лет стотыщмильёнов авторизованных будет", могу дать только данные цитаты:
"Sinkora" wrote:
Я лично вот о чем задумался. Судя по интенсивности комментирования на одном из сайтов, я пришел к выводу, что менее чем через 2 года на сайте будет больше одного или двух миллионов комментов в таблице comments (по-моему, это немало). Как в Друпале нужно будет поступать потом? Т.е. придется как-то разбивать эту таблицу, или репликацию делать? В этом у меня опыта нет, только немного читал, но чувствую, что придется столкнуться в будущем на практике... Что посоветуете?

_____
"Sinkora" wrote:
А представь, как будет работать сайт, когда будет такая ситуация:

"Сейчас на сайте 1500 пользователей и 250 гостей".

Оценишь стоимость такого хостинга? Правильно, все зависит от того, как спроектирован сайт.


"PVasili" wrote:
Это реальные цифры или как обычно конь в вакууме?

"RxB" wrote:
Боюсь, что у вас нет такого проекта

"Sinkora" wrote:
Боюсь, что будет.

____
Не делай себе проблем когда их нет

Аватар пользователя utiputi utiputi 8 сентября 2010 в 10:35

Сейчас делаю интернет магазин на Уберкарте:

2,8 млн товаров
32 тис. терминов таксономиии
70 млн. записей в таблице term_node (привязок таксономии к нодам)
22 млн. записей в одной из таблиц множественного поля CCK

Общий размер базы (без кэша) 8Гб
Пока полет нормальный, на локалхосте, под денвером
Тормозит стабильно Smile
Думаю с кэшем, и на ВПС будет работать нормально.

Аватар пользователя volocuga@drupal.org volocuga@drupal.org 8 сентября 2010 в 13:29

"utiputi" wrote:
2,8 млн товаров
32 тис. терминов таксономиии
70 млн. записей в таблице term_node (привязок таксономии к нодам)
22 млн. записей в одной из таблиц множественного поля CCK

Не верю

Аватар пользователя vgoodvin vgoodvin 8 сентября 2010 в 14:44

Когда такой сайт собираются запустить на обычном ВПС, обычно заказчик из категории "Наш сайт должен покорить мир, бюджет $500".