>데이터 베이스 >MySQL 튜토리얼 >MySQL에서 낭비되는 InnoDB 스토리지 공간을 어떻게 회수할 수 있습니까?

MySQL에서 낭비되는 InnoDB 스토리지 공간을 어떻게 회수할 수 있습니까?

DDD
DDD원래의
2024-12-09 12:35:32438검색

How Can I Reclaim Wasted InnoDB Storage Space in MySQL?

InnoDB 저장 공간 회수

MySQL InnoDB 엔진은 ibdata1이라는 파일에서 데이터를 관리하며, 여기에 테이블 데이터, 인덱스, 메타데이터 및 기타 정보가 저장됩니다. 기타 인프라 구성 요소. 시간이 지남에 따라 삭제된 테이블의 데이터가 ibdata1에 누적되어 저장 공간이 팽창할 수 있습니다.

InnoDB 스토리지 엔진 정리 방법

ibdata1을 축소하고 공간을 확보하려면 다음을 따르세요. 다음 단계:

  1. 덤프 및 삭제 데이터베이스: 모든 데이터베이스를 SQL 파일(SQLData.sql)로 내보내고 MySQL 및 information_schema를 제외한 모든 데이터베이스를 삭제합니다.
  2. 트랜잭션 데이터 플러시: SET GLOBAL innodb_fast_shutdown = 0; 로그 파일에서 모든 트랜잭션 변경 사항을 삭제합니다.
  3. MySQL 구성: innodb_file_per_table, innodb_flush_method=O_DIRECT, innodb_log_file_size=1G를 포함하여 my.cnf 파일에 적절한 설정을 추가합니다. innodb_buffer_pool_size=4G.
  4. Ibdata 및 로그 파일 삭제: 데이터 디렉터리에서 ibdata* 및 ib_logfile* 파일을 제거합니다.
  5. MySQL 다시 시작: 시작 더 작은 크기로 새로운 ibdata1을 생성하는 MySQL size.
  6. SQL 데이터 가져오기: SQLData.sql을 가져와 데이터베이스를 복원합니다.

이 방법의 이점

  • 이전에 삭제된 파일이 차지했던 저장 공간을 확보합니다.
  • ibdata1의 크기를 줄여 I/O 성능을 향상시켜 성능을 향상시킵니다.
  • 테이블 데이터와 인덱스를 별도의 파일로 분리하여 데이터 저장소에 대한 더 나은 제어를 제공합니다.

참고:

사용자가 mysql 스키마 디렉토리를 복사하고 정리 프로세스 후에 복원하여 보존됩니다. 또한 서버 요구 사항 및 작업 부하 특성에 따라 로그 파일 크기를 최적화하세요.

위 내용은 MySQL에서 낭비되는 InnoDB 스토리지 공간을 어떻게 회수할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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