Какие факторы должны определять, как часто таблица оптимизируется в MySQL? - PullRequest
1 голос
/ 21 июня 2009

Я видел много разных графиков для оптимизации таблиц в MySQL: от сразу после удаления, до одного раза в день и никогда. Я часто настраивал задание cron на запуск каждую ночь для оптимизации всех таблиц.

Какие факторы вы используете, чтобы определить, как часто следует оптимизировать таблицу?

Ответы [ 2 ]

2 голосов
/ 21 июня 2009

Также эта цитата из самих MySQL хороша.

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

На основании этой статьи по оптимизации таблиц.

Это приводит к дефрагментации таблицы и уменьшению размера таблицы на диске до 105 МБ. Это также очень положительно влияет на производительность запросов, сокращая время ответа на запрос выбора с 0,63 до 0,39 секунд. Нотабене кеш запросов mysql был отключен для демонстрации.

Вот еще одна цитата из «Руководство администратора MySQL»

OPTIMIZE TABLE выполняет восстановление таблиц и анализ ключей, а также сортирует дерево индексов, чтобы поиск ключей выполнялся быстрее.

Только потому, что эту цитату нельзя часто повторять.

Преждевременная оптимизация - корень всего зла

Что вам нужно сделать, это измерить до, выполнить оптимизацию, а затем измерить после. Затем сделайте то же самое на следующий день, если увеличение производительности минимально, то вы должны сделать то же самое после и посмотреть, получите ли вы прирост производительности.

0 голосов
/ 21 июня 2009

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

Если производительность является проблемой (и только если), то вам следует профилировать приложение, используя запуск базы данных, оптимизируя фактические узкие места.

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