mysql: как освободить место (innodb) - PullRequest
5 голосов
/ 27 мая 2009

У меня есть mysql DB, сконфигурированная с механизмом хранения innoDB. Я сбросил базу данных (drop database <dbname>) но дисковое пространство не освобождено.

На /var/lib/mysql есть несколько "больших" файлов с именами ib_logfile0, ib_logfile1 и ibdata1, где последний действительно большой. Я утверждаю, что эти файлы на самом деле являются исходной БД.

Как я могу узнать, могу ли я удалить их. Или лучше вопрос, как бросить базы данных, чтобы освободить место на диске.

Разъяснение
Я хочу удалить всю базу данных и освободить место на диске. Я не хочу выполнять восстановление.

Заранее спасибо.

Ответы [ 2 ]

8 голосов
/ 27 мая 2009

К сожалению, нет способа сжать эти файлы после выделения места. Однако MySQL будет повторно использовать пространство при добавлении новых данных, но файл не будет уменьшаться.

Чтобы уменьшить размер, вам нужно сбросить базы данных, а затем восстановить их снова.

Вы также можете сделать следующее:

Установите innodb_file_per_table в вашем конфигурационном файле, который создаст отдельный файл для каждой таблицы. Это позволит вам удалить эти файлы после удаления базы данных, а также использовать команду OPTIMIZE TABLE для восстановления файлов ibd, если вы сжимаете данные в конкретной таблице.

0 голосов
/ 27 мая 2009

Одним из решений является сброс, а затем восстановление.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...