Таблица OPTIMIZE и таблица ANALYZE MySQL 5.6 для производительности запросов - PullRequest
0 голосов
/ 14 февраля 2020

На этом сайте много вопросов / ответов, связанных с optimize table и analyze table.

Вопрос : Если мы хотим быстро выполнить DDL / DML / SELECT, не задумываясь пробел, даже если у нас есть фрагментация в таблице, мы можем сделать только команду analyze table. потому что у нас есть таблица размера 500 ГБ, а механизм хранения innodb требует времени для команды optimize table.

Согласно MySQL Документации, ОПТИМИЗАЦИЯ ТАБЛИЦЫ и АНАЛИЗ ТАБЛИЦЫ

  1. Optimize table реорганизует физическое хранилище данных таблицы и связанных данных индекса, чтобы уменьшить пространство хранения и повысить эффективность ввода-вывода при доступе к таблице.
  2. Analyze table выполняет анализ распределения ключей и сохраняет распределение для именованной таблицы или таблиц

Я думаю, статистика таблиц актуальна, нет необходимости оптимизировать таблицу, если мы не заботиться о пространстве, используемом пустым блоком.

1 Ответ

1 голос
/ 14 февраля 2020

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

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

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

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

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

...