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.