mysql оптимизирует очень большую таблицу


У меня есть таблица MyIsam размером около 15 Гб. Я удалил около половины строк из него, и запрос на удаление занял около 10 часов. Теперь я боюсь начинать optimize table, потому что не знаю, сколько времени это займет. Если у вас есть опыт работы с такими большими столами, пожалуйста, поделитесь со мной.

PS после процесса удаления запрос "select * from table limit 0,30" занимает годы. Поможет ли optimize table?

Займет ли это больше 10 часов?

Что будет, если я ... прервать запрос "оптимизировать таблицу"?

1 5

1 ответ:

Оптимизировать таблицу поможет уменьшение размера (индекс будет пересчитан и т.д.) Если вы удалили половину строк, вам следует настроить таблицу. В моей компании мы имеем таблицы около 2-3 Гб. Оптимизировать не столько, как удалить.

Если вы хотите, чтобы ваши запросы были быстрее, оптимизируйте таблицу.



Еще одна подсказка для удаления многих строк из большой таблицы: Вы можете сделать это без использования команды delete.

Выберите строки, которые не должны быть удаляется в пустую таблицу, имеющую ту же структуру, что и исходная таблица:

Вставить в t_copy SELECT * FROM t WHERE ... ;

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

Переименовать таблицу t в t_old, t_copy в t;

Отбросьте исходную таблицу:

DROP TABLE t_old;