mysql оптимизирует очень большую таблицу
У меня есть таблица MyIsam размером около 15 Гб.
Я удалил около половины строк из него, и запрос на удаление занял около 10 часов.
Теперь я боюсь начинать optimize table
, потому что не знаю, сколько времени это займет.
Если у вас есть опыт работы с такими большими столами, пожалуйста, поделитесь со мной.
PS после процесса удаления запрос "select * from table limit 0,30" занимает годы.
Поможет ли optimize table
?
Займет ли это больше 10 часов?
Что будет, если я ... прервать запрос "оптимизировать таблицу"?
1 ответ:
Оптимизировать таблицу поможет уменьшение размера (индекс будет пересчитан и т.д.) Если вы удалили половину строк, вам следует настроить таблицу. В моей компании мы имеем таблицы около 2-3 Гб. Оптимизировать не столько, как удалить.
Если вы хотите, чтобы ваши запросы были быстрее, оптимизируйте таблицу.
Еще одна подсказка для удаления многих строк из большой таблицы: Вы можете сделать это без использования команды delete.Выберите строки, которые не должны быть удаляется в пустую таблицу, имеющую ту же структуру, что и исходная таблица:
Вставить в t_copy SELECT * FROM t WHERE ... ;
Использовать переименовать таблицу, чтобы автоматически переместить исходную таблицу и переименовать копию в оригинальное название:
Переименовать таблицу t в t_old, t_copy в t;
Отбросьте исходную таблицу:
DROP TABLE t_old;