>데이터 베이스 >MySQL 튜토리얼 >데이터를 삭제한 후 MySQL InnoDB에서 디스크 공간을 어떻게 회수할 수 있습니까?

데이터를 삭제한 후 MySQL InnoDB에서 디스크 공간을 어떻게 회수할 수 있습니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-12-03 09:35:16371검색

How Can I Reclaim Disk Space in MySQL InnoDB After Deleting Data?

데이터 삭제 후 MySQL InnoDB에서 디스크 공간 회수

InnoDB를 사용하여 MySQL 테이블에서 데이터를 삭제한 후 할당된 디스크 공간이 디스크 공간은 계속 점유되어 있습니다. 이로 인해 특히 대규모 애플리케이션에서 심각한 디스크 공간 제약이 발생할 수 있습니다.

InnoDB가 삭제 후 공간을 해제하지 않는 이유는 무엇입니까?

MySQL의 InnoDB 스토리지 엔진은 다음에서 작동합니다. 데이터 행이 삭제되면 물리적으로 제거되는 대신 단순히 기존 파일 내의 여유 공간으로 표시된다는 의미인 "제자리에서 삭제(delete-in-place)"의 원칙입니다. 이렇게 하면 대량의 데이터를 다시 쓸 필요가 없어 효율적인 데이터 검색이 가능합니다.

디스크 공간을 회수하는 방법

InnoDB는 디스크 공간을 자동으로 해제하지 않지만, 수동으로 복원하는 방법은 다음과 같습니다.

1. 테이블 최적화:

해당 테이블에서 "OPTIMIZE TABLE" 명령을 실행하면 연속 여유 공간이 재사용 가능한 것으로 표시됩니다. 그러나 이는 실제로 공간을 해제하는 것이 아니라 재사용할 수 있도록 준비한다는 점에 유의하는 것이 중요합니다.

2. InnoDB 테이블당 파일:

innodb_file_per_table을 사용하도록 서버를 구성하면 각 테이블에 자체 전용 .ibd 파일이 있습니다. 테이블에서 데이터가 삭제되면 "OPTIMIZE TABLE"을 실행한 후 해당 .ibd 파일 크기가 줄어듭니다. 이 접근 방식에는 새 데이터베이스를 생성하고 데이터를 복원하여 더욱 복잡한 솔루션으로 만드는 작업이 포함됩니다.

3. 덤프 및 복원:

InnoDB에서 디스크 공간을 회수하는 가장 효과적인 방법 중 하나는 데이터베이스의 논리적 백업을 수행하고 기존 데이터베이스를 삭제한 다음 백업을 복원하는 것입니다. 이 프로세스는 삭제된 데이터를 물리적으로 제거하고 .ibd 파일의 크기를 줄입니다.

4. 타사 도구:

MySQL에서 디스크 공간을 회수하는 데 도움을 줄 수 있는 "pt-shrink"와 같은 타사 도구가 있습니다. 이러한 도구는 논리적 백업을 수행하고 테이블을 최적화하며 데이터를 새 데이터베이스로 복원합니다.

주의:

이후에는 데이터 복구가 불가능하다는 점을 이해하는 것이 중요합니다. 디스크 공간 회수 방법이 적용되었습니다. 따라서 제안된 기술을 진행하기 전에 데이터베이스를 백업하는 것이 좋습니다.

위 내용은 데이터를 삭제한 후 MySQL InnoDB에서 디스크 공간을 어떻게 회수할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.