14.10.5 TRUNCATE TABLE에 의한 디스크 공간의 재사용
InnoDB
테이블을 잘라낼 때 운영 체제의 디스크 공간을 확보하려면 그 테이블이 독자적인 .ibd 파일에 저장되어 있어야합니다. 자신의 .ibd 파일에 저장되는 테이블의 경우 해당 테이블을 만들 때 innodb_file_per_table
를 활성화해야합니다. 또한 잘릴 테이블과 다른 테이블 사이에 외래 키 제약이 존재해서는 없습니다. 그렇지 않으면, TRUNCATE TABLE
작업이 실패합니다. 그러나 같은 테이블의 두 컬럼 사이의 외래 키 제약 조건은 허용됩니다.
테이블이 절단되면 해당 테이블이 삭제되어 새로운 .ibd
파일에 다시 만들어 해방 된 영역은 운영 체제에 반환됩니다. 이것은 InnoDB
시스템 테이블 스페이스 에 저장되어있는 InnoDB
테이블 ( innodb_file_per_table=OFF
때 생성되는 테이블) 절단과 대조적입니다. 이 경우 해당 테이블이 잘린 후 해방 된 영역은 InnoDB
밖에 사용할 수 없습니다.
테이블을 잘라 그 디스크 공간을 운영 체제에 반환 기능은 또한 물리적 백업 을 줄일 수 있습니다. 시스템 테이블 공간에 저장되는 테이블 ( innodb_file_per_table=OFF
때 생성되는 테이블)의 절약은 미사용 영역의 블록이 시스템 테이블 스페이스에 남아 있습니다.