Я создал несколько очень больших баз данных и с тех пор сбросил несколько. Я заметил, что мое дисковое пространство не восстановилось настолько, насколько я ожидал. Например, последняя добавленная база данных фактически исчерпала все мое свободное пространство и прервалась, поэтому я отказался от этой схемы. До этого у меня было 12,4 ГБ бесплатно, теперь у меня только 7,52 ГБ бесплатно.
Что здесь происходит? Как я могу вернуть свои 5 ГБ?
Восстановить дисковое пространство после базы данных drop в mysql
Ответ 1
Из http://dev.mysql.com/doc/refman/5.1/en/innodb-data-log-reconfiguration.html:
В настоящее время вы не можете удалить файл данных из табличного пространства. Чтобы уменьшить размер табличного пространства, используйте следующую процедуру:
Используйте mysqldump для удаления всех ваших таблиц InnoDB.
Остановить сервер.
Удалите все существующие файлы табличного пространства, включая файлы ibdata и ib_log. Если вы хотите сохранить резервную копию информации, скопируйте все файлы ib * в другое место перед удалением файлов в вашей установке MySQL.
Удалите любые файлы .frm для таблиц InnoDB.
Настройте новое табличное пространство.
Перезагрузите сервер.
Импортируйте файлы дампа.
Innodb создает файловую систему ( "табличное пространство" ) внутри самих файлов данных. Он никогда не "сжимает" файлы данных при удалении данных, поскольку реорганизация данных внутри файла может быть дорогостоящей (нет гарантии, что данные были удалены в конце или даже смежны). Восстанавливая базу данных, как описано выше, она делает файл максимально необходимым для всех данных, но не больше.