Подтвердить что ты не робот

Восстановить дисковое пространство после базы данных drop в mysql

Я создал несколько очень больших баз данных и с тех пор сбросил несколько. Я заметил, что мое дисковое пространство не восстановилось настолько, насколько я ожидал. Например, последняя добавленная база данных фактически исчерпала все мое свободное пространство и прервалась, поэтому я отказался от этой схемы. До этого у меня было 12,4 ГБ бесплатно, теперь у меня только 7,52 ГБ бесплатно.
Что здесь происходит? Как я могу вернуть свои 5 ГБ?

4b9b3361

Ответ 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 создает файловую систему ( "табличное пространство" ) внутри самих файлов данных. Он никогда не "сжимает" файлы данных при удалении данных, поскольку реорганизация данных внутри файла может быть дорогостоящей (нет гарантии, что данные были удалены в конце или даже смежны). Восстанавливая базу данных, как описано выше, она делает файл максимально необходимым для всех данных, но не больше.