5/5 - (1 голос)
Дано: БД mysql, InnoDB. Необходимо уменьшить БД. В MSSQL есть очень удобная команда SHRINK DATABASE, но к сожалению в mysql по другому.
Движок InnoDB не поддерживает уменьшение размеров файлов БД. Единственный способ уменьшить размер БД — сделать дамп, пере инициализировать хранилище, восстановить из дампа.
Решение:
- Сделать mysqldump всех баз данных, процедур, триггеров и т.д., кроме баз данных performance_schema, mysql
- Удалите все базы данных, кроме двух из предыдущего пункта
- Остановите службу БД mysql. service mysqld stop
- Удалить ibdata и ib_log файлы
- Запустите службу БД mysql. service mysqld start
- Восстановите из бэкапа базы данных, сохраненные в первом пункте
При помощи команды ALTER <tablename> ENGINE = InnoDB или OPTIMIZE TABLE <tablename> можно оптимизировать данных и индексы. Тем не менее, ibdata не будет уменьшена, если вы не сделаете шаги, описанные выше.