Разделить таблицы БД, чтобы сбалансировать нагрузку? - PullRequest
0 голосов
/ 03 августа 2011

Допустим, у вас есть веб-сайт, который пользователи используют для входа.Каждый пользователь получает доступ к страницам, где он добавляет и удаляет информацию в одной таблице базы данных.Только они могут видеть и получать доступ к своим данным.Довольно прямо вперед.

Теперь, скажем, веб-сайт чрезвычайно популярен.Больше пользователей + больше данных = очень большая таблица с большим количеством записей.

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

Таким образом, вместо 1000 пользователей, выбирающих и обновляющих одну большую таблицу, возможно, у вас есть 100 таблиц, к каждой из которых доступ имеют только 10 пользователей.

Что мне интересно, так это стратегия организации баз данных, способная улучшить балансировку нагрузки?Или это вызвало бы такое же количество нагрузки?Это общая стратегия, и если да, то есть ли для нее название?

Извините, я думал, что опубликовал это на ServerFault.Пожалуйста, мигрируйте.

Ответы [ 2 ]

1 голос
/ 03 августа 2011

Если и когда вы столкнетесь с узким местом, связанным с базой данных, это произойдет, когда размер вашего активного набора данных превысит объем оперативной памяти на сервере.В этот момент разделение таблицы на одном сервере ничего не даст;это ничего не изменит, поскольку дисковый ввод-вывод будет на несколько порядков медленнее, чем ОЗУ.Вы будете либо модернизировать ОЗУ, либо, как только сделаете это, насколько это возможно, разделив данные между несколькими серверами.

0 голосов
/ 03 августа 2011

Поиск шардинга.Но я предлагаю вам не беспокоиться об этом сейчас.На самом деле вы не знаете, какой будет медленная точка для вашей системы, пока она на самом деле не станет большой, и вы можете измерить ее.

Также см .: http://dev.mysql.com/doc/refman/5.1/en/partitioning.html

...