Spec-Zone.ru › MySQL 9.2

17.11.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-8.4-en/innodb-truncate-table-reclaim-space.html

Spec-Zone.ru

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