Spec-Zone.ru › MySQL 5.7

14.12.5 Освобождение дискового пространства с помощью TRUNCATE TABLE

Для освобождения дискового пространства операционной системы при работе с таблицей InnoDB, таблица должна храниться в собственном файле. Для хранения таблицы в собственном файле необходимо включить innodb_file_per_table при её создании. Кроме того, не должно быть ограничений между таблицей, которую нужно обнулить, и другими таблицами, иначе операция TRUNCATE TABLE завершится неудачно. Однако разрешается наличие внешнего ключа между двумя столбцами в той же таблице.

При обнулении таблицы она удаляется и воссоздаётся в новом файле .ibd, а освободившееся пространство возвращается операционной системе. Это отличается от обнуления таблиц InnoDB, которые хранятся в InnoDB (таблицы, созданные при innodb_file_per_table=OFF), и таблиц, хранящихся в общем пространстве, где только InnoDB могут использовать освободившееся пространство после обнуления таблицы.

Возможность обнуления таблиц и возвращения дискового пространства операционной системе также означает, что может быть меньше. При обнулении таблиц, хранящихся в системном табличном пространстве (таблицы, созданные при innodb_file_per_table=OFF) или в общем табличном пространстве, остаются блоки неиспользуемого пространства в табличном пространстве.

© 2025 Oracle
Licensed under the GPLv2 License.
https://docs.oracle.com/cd/E17952_01/mysql-5.7-en/innodb-truncate-table-reclaim-space.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API