Как масштабировать MySQL таблицы для роста - PullRequest
2 голосов
/ 05 марта 2012

Так что я работаю над сайтом, который заменит старый сайт большим трафиком, и у меня также будет много данных в БД, поэтому мой вопрос к вам, ребята, каков наилучший способ разработки mysql? таблицы для роста?

Я думал разбить, скажем, таблицу с 5 000 000 строк на 5 таблиц, с 1 000 000 строк / таблицей и создать связь между таблицами, но я думаю, что это не очень хороший вариант, так как я потрачу много ресурсов и времени, чтобы выяснить, в какой таблице мои данные.

Или вы, ребята, можете дать мне несколько полезных статей?

Ответы [ 2 ]

1 голос
/ 05 марта 2012

Разделение, как упомянуто в комментарии, является одним из способов, но первый путь, который нужно проверить, - это даже определить, можно ли разбить таблицы с большими объемами данных на работающие куски на основе некоторых внутренних данных.

Например, допустим, у вас есть огромная таблица контактов. Вы можете по существу разбить данные на контакты, которые начинаются с ad, ej и т. Д. Затем, когда вы идете, чтобы добавить записи, вы просто убедитесь, что вы добавляете записи в правильную таблицу (я бы посоветовал проверить хранимые процедуры для обработки этого, так что логика регулируется в базе данных). Вы также, вероятно, настроили бы хранимые процедуры, чтобы также получать данные из тех же таблиц. Сделав это, однако, вы должны понимать, что использование автоматически увеличивающихся идентификаторов не будет работать правильно, поскольку вы не сможете поддерживать уникальные идентификаторы во всех таблицах, не выполняя какую-либо работу самостоятельно.

Это, конечно, простые решения. Существует множество решений для больших наборов данных, в том числе поиск других решений для хранения данных, кластеризация, разбиение на разделы и т. Д. Выполнение некоторых из этих вещей вручную может дать вам некоторое представление о некоторых из возможных «ручных решений».

1 голос
/ 05 марта 2012

Нет, вы абсолютно правы в отношениях. Этот метод называется Нормализация , где вы определяете отдельные таблицы, потому что эти отдельные таблицы зависят от времени и не зависят от других таблиц.

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

Но у вас будут внешние ключи / суррогатные ключи в каждой таблице (например, room_id), которые могут относиться к конкретному гостю, входящему в эту конкретную комнату.

Нормализация, в вашем случае, может помочь вам оптимизировать эти 5000 строк, поскольку не будет оптимальным, чтобы цикл проходил более 5000 элементов и извлекал все данные.

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

...