Раздутый файл данных innodb (ibdata1) и как освободить место? - PullRequest
2 голосов
/ 20 января 2010

У меня в таблицах около 12 ГБ данных, а мой файл данных, ibdata1, имел размер около 12 ГБ. Затем я выполнил следующую команду

alter table `rails_production`.`pictures` change `data` `image_file_data` mediumblob NULL

Во время создания временной копии таблицы я получил следующую ошибку

ERROR 1114 (HY000): The table '#sql-7fe4_12c9' is full

Я предполагаю, что это означает, что не было достаточно места для создания временной копии таблицы. Но теперь файл данных 17 ГБ! Как восстановить пространство в файле данных?

Есть ли способ проверить, сколько из этих 17 ГБ используется?

Ответы [ 2 ]

5 голосов
/ 20 января 2010

К сожалению, вы не можете восстановить пространство из базы данных innodb, если вы не используете innodb_file_per_table в своей конфигурации:

MySQL InnoDB не освобождает дисковое пространство после удаления строк данных из таблицы

0 голосов
/ 25 августа 2013

Даже если вы не используете innodb_file_per_table, вы можете повторно запросить пространство, выгрузив БД и загрузив ее обратно. Это, вероятно, вызовет некоторое время простоя.

...