Назад | Перейти на главную страницу

Примерно, сколько времени «ALTER TABLE» должно занимать таблицу INNODB объемом 1,3 ГБ?

Я пытаюсь оптимизировать таблицу, которая давно не оптимизировалась. Он имеет около 2,5 миллионов строк с 1,3 ГБ данных и индексом 152 МБ. Я начал оптимизировать его около 15 минут назад и понятия не имею, сколько времени это займет.

Сервер достаточно надежен (четырехъядерный процессор с оперативной памятью 4 ГБ) и имеет размер пула буферов innodb 500 МБ.

Должен ли я ожидать, что это займет минуты, часы или дни?

Ответ, видимо, был 1 час 20 минут. Я не уверен, что это «нормальное» время или это было отложено из-за неэффективности моей настройки.

Это во многом зависит от статуса данных в таблице и вашего оборудования, но типичная верхняя граница операций innodb alter table - это время, необходимое для копирования всей таблицы + время, необходимое для сортировки индекса.

Вы убедились, что вам не хватает места на диске?

Я пока не знаю почему, но иногда такие операции занимают часы. Я был свидетелем двухчасового пробега и слышал о восьмичасовом. Чтобы изменить таблицу, MySQL должен не только скопировать ее в новую, но и повторно проиндексировать ее. Здесь он обычно проводит большую часть времени. Если вы отметите PROCESSLIST, скорее всего, будет сказано, что создается индекс или индекс сортировки.

Это ненормально, но, к сожалению, бывает.