>데이터 베이스 >MySQL 튜토리얼 >전체 데이터베이스를 재구축하지 않고 삭제된 InnoDB 테이블에서 데이터를 제거할 수 있습니까?

전체 데이터베이스를 재구축하지 않고 삭제된 InnoDB 테이블에서 데이터를 제거할 수 있습니까?

Linda Hamilton
Linda Hamilton원래의
2024-12-14 17:01:12708검색

Can I Remove Data from Deleted InnoDB Tables Without a Full Database Rebuild?

데이터 제거를 위한 MySQL InnoDB 스토리지 엔진 최적화

문제: 삭제된 테이블에서 데이터를 제거하는 것이 가능합니까? 전체를 재구축하지 않고 MySQL InnoDB 스토리지 엔진 데이터베이스?

답변: 예, 포괄적인 정리 프로세스를 통해 가능합니다.

설명:

InnoDB는 다양한 저장소를 저장합니다. 테이블 데이터, 인덱스 및 시스템 메타데이터를 포함하여 ibdata1 파일의 데이터 유형입니다. 테이블이 삭제되면 해당 데이터와 인덱스는 더 이상 액세스할 수 없더라도 ibdata1 내에 유지됩니다. 이는 시간이 지남에 따라 공간 낭비 및 성능 저하로 이어질 수 있습니다.

정리 프로세스:

  1. 덤프 데이터베이스: mysql 및 information_schema를 제외한 모든 데이터베이스.
  2. 삭제 데이터베이스: mysql 및 information_schema를 제외한 모든 데이터베이스를 삭제합니다.
  3. 빠른 종료 비활성화: 로그 파일에서 트랜잭션 변경 사항을 플러시하려면 innodb_fast_shutdown을 0으로 설정합니다.
  4. MySQL 종료: MySQL을 중지합니다. server.
  5. 구성 수정: innodb_file_per_table, innodb_flush_method=O_DIRECT, innodb_log_file_size 및 innodb_buffer_pool_size 설정을 /etc/my.cnf에 추가합니다.
  6. 삭제 ibdata 파일:* 모든 ibdata 및 ib_logfile* 파일을 제거합니다.
  7. MySQL 다시 시작: MySQL을 시작하면 메타데이터만 사용하여 ibdata1이 다시 생성됩니다.
  8. 데이터베이스 덤프 가져오기: 이전에 내보낸 SQL을 복원합니다. dump.

이 프로세스 후에 ibdata1에는 메타데이터만 포함되고 개별 테이블은 자체 .ibd 파일에 상주하게 됩니다. 이를 통해 OPTIMIZE TABLE을 사용하여 개별 테이블을 최적화하고 낭비되는 공간을 줄이고 성능을 향상시킬 수 있습니다.

참고: 데이터베이스를 삭제한 후 사용자 권한이 올바르게 다시 설정되었는지 확인하는 것이 중요합니다.

위 내용은 전체 데이터베이스를 재구축하지 않고 삭제된 InnoDB 테이블에서 데이터를 제거할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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