Производительность MySQL: много строк и столбцов (MyISAM) - PullRequest
0 голосов
/ 20 октября 2011

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

Я знаю, что один из способов оптимизации запросов MySQL состоит в том, чтобы разбить ваши строки на отдельные таблицыОднако у этого есть несколько проблем с комфортом.

Что я рассматриваю, так это: запрос таблицы, состоящей из приблизительно 1'000'000 строк и 150 столбцов с использованием превосходно разработанных индексов и получение только необходимых столбцов из каждого запроса, приводит к значительному увеличению более высокая нагрузка на сервер, чем разделение таблицы на несколько, что приводит к меньшему количеству столбцов?

Ответы [ 2 ]

2 голосов
/ 20 октября 2011

Большие таблицы BLOB-объектов - это не шаблон, никогда их не используйте.

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

Использование нормализованной таблицы избавит вас от многих головных болей, кроме:

  1. Ваши данные будут меньше, поэтому больше их умещается в памяти.
  2. Вы храните данные только в одном месте, поэтому они не могут быть противоречивыми.
  3. MySQL позволяет вам использовать только один индекс для каждого выбора для таблицы; несколько таблиц означает, что вы можете использовать больше индексов и получать большую скорость.
  4. Триггеры на таблицах выполняются намного быстрее.
  5. Нормализованные таблицы легче обслуживать.
  6. У вас меньше индексов на таблицу, поэтому вставки выполняются быстрее.
  7. Индексы меньше (меньше строк) и сужаются (меньше столбцов) и в результате будут работать намного быстрее.
0 голосов
/ 20 октября 2011

Если данные статические, вы можете упаковать таблицы для большей эффективности.Вот страница в справочном руководстве

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...