> 데이터 베이스 > MySQL 튜토리얼 > MySQL InnoDB 스토리지 엔진을 정리하고 축소하려면 어떻게 해야 합니까?

MySQL InnoDB 스토리지 엔진을 정리하고 축소하려면 어떻게 해야 합니까?

Mary-Kate Olsen
풀어 주다: 2024-12-18 22:09:17
원래의
207명이 탐색했습니다.

How Can I Clean Up and Shrink My MySQL InnoDB Storage Engine?

MySQL InnoDB 스토리지 엔진 정리

MySQL InnoDB 스토리지 엔진을 정리하고 삭제된 테이블에서 데이터를 제거하려면 다음 단계를 따르세요.

InnoDB 이해 아키텍처

InnoDB는 ibdata1 파일에 6가지 유형의 정보를 저장합니다:

  • 테이블 데이터
  • 테이블 인덱스
  • MVCC(Multiversioning Concurrency) 제어) 데이터
  • 테이블 메타데이터(Data 사전)
  • 이중 쓰기 버퍼
  • 버퍼 삽입

OPTIMIZE TABLE을 실행할 수 있습니까?

OPTIMIZE TABLE 사용 ibdata1에 저장된 InnoDB 테이블에는 두 개의 테이블이 있습니다. 효과:

  • 파일 내에서 테이블의 데이터와 인덱스를 연속적으로 만듭니다.
  • 수정된 데이터와 인덱스를 추가하여 ibdata1을 확장합니다.

OPTIMIZE TABLE을 실행할 수 있나요? innodb_file_per_table?

이 옵션을 활성화하면 OPTIMIZE TABLE은 각 InnoDB 테이블에 대해 별도의 .ibd 파일을 생성합니다. 이 분리는 ibdata1에서 데이터와 인덱스를 분리하지만 ibdata1에서 데이터 사전 항목을 제거하지는 않습니다.

InnoDB 인프라 정리

ibdata1을 축소하고 불필요한 데이터를 제거하려면:

  1. 모든 데이터베이스를 SQL 텍스트 파일로 덤프합니다. (SQLData.sql).
  2. mysql 및 information_schema를 제외한 모든 데이터베이스를 삭제합니다. 사용자 권한을 유지합니다.
  3. 트랜잭션 변경 사항을 플러시하려면 innodb_fast_shutdown을 0으로 설정합니다.
  4. MySQL을 종료합니다.
  5. 다음을 사용하여 my.cnf(또는 my.ini)를 수정합니다. 설정:

    • innodb_file_per_table
    • innodb_flush_method=O_DIRECT
    • innodb_log_file_size=1G(25%인지 확인하세요) innodb_buffer_pool_size)
  6. ibdata 및 ib_logfile 파일을 삭제합니다.
  7. MySQL을 시작합니다.
  8. SQLData.sql을 가져옵니다.

이러한 과정을 거쳐, ibdata1에는 테이블 메타데이터만 포함되며 개별 InnoDB 테이블은 .frm 및 .ibd 확장자를 가진 별도의 파일에 저장됩니다. 그런 다음 OPTIMIZE TABLE을 사용하여 테이블의 .ibd 파일을 축소할 수 있습니다.

위 내용은 MySQL InnoDB 스토리지 엔진을 정리하고 축소하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿