이 글은 기계 번역의 미러 문서이며, 원본 기사로 바로 이동하려면 여기를 클릭해 주세요.

보기: 3517|회답: 1

[팁] [전송]을 MySQL Advanced: optimize table 명령어

[링크 복사]
게시됨 2023. 6. 17. 오전 11:40:34 | | |
mysql을 사용할 때, 테이블이 많은 데이터를 삭제하긴 하지만, 데이터 파일과 인덱스 파일은 이상할 정도로 작을 수 있습니다. 이는 mysql이 데이터를 삭제할 때 많은 데이터 구멍(특히 텍스트와 BLOB)을 남기는데, 이 구멍들이 원래 데이터 공간을 차지하기 때문에 파일 크기가 변하지 않기 때문입니다. 이 구멍들은 나중에 데이터가 삽입될 때 재사용할 수 있으며, 물론 그대로 유지될 수도 있습니다. 이 구멍은 저장 비용을 증가시킬 뿐만 아니라 데이터 단편화로 인해 테이블의 스캔 효율도 저하시킵니다.

사용 시나리오:테이블의 많은 부분을 삭제했거나, VARCHAR, BLOB, TEXT 열이 있는 가변 길이 행 테이블에 많은 변경을 했다면 OPTIMIZE TABLE을 사용해야 합니다. 삭제된 레코드는 연결 목록에 보관되며, 이후 INSERT 작업은 이전 레코드 위치를 재사용합니다. OPTIMIZE TABLE을 사용해 사용하지 않는 공간을 재활용하고 데이터 파일 조각을 정리할 수 있습니다. [라이브러리에서 많은 양의 데이터가 삭제되더라도 데이터 파일 크기가 줄지 않을 수 있습니다. 이는 삭제 작업 후 데이터 파일에 남은 단편화 때문입니다.


대부분의 환경에서는 OPTIMIZE TABLE을 실행할 필요가 전혀 없습니다. 가변 길이 행에 많은 업데이트를 하더라도, 특정 테이블에만 주일에 한 번이나 한 달에 한 번 정도 자주 실행할 필요는 없습니다.

OPTIMIZE TABLE은 MyISAM, BDB, InnoDB 테이블에만 적용됩니다.

BDB 테이블의 경우, OPTIMIZE TABLE은 현재 ANALYZE TABLE에 매핑되어 있습니다. InnoDB 테이블의 경우, OPTIMIZE TABLE은 ALTER TABLE에 매핑되어 ALTER TABLE이 테이블을 재구성합니다. 재구성 작업은 인덱스 통계를 업데이트하고 클러스터 인덱스의 미사용 공간을 확보합니다.

참고: MySQL은 OPTIMIZE TABLE 실행 중에 테이블을 잠깁니다.

myisam의 경우, 최적화 테이블을 직접 사용할 수 있습니다 table.name,InnoDB 엔진일 때는 "테이블이 최적화를 지원하지 않으니 대신 재생성 + 분석을 하세요"라고 보고하고, 보통 myisam에서 innodb로 변환하면 alter table table.name engine='innodb'를 사용해서 변환하게 되며, 이 방법으로 최적화도 가능합니다.따라서 InnoDB 엔진일 때는 최적화 대신 alter table table.name engine='innodb'를 사용할 수 있습니다

전후 효과를 보려면 [데이터베이스]에서 '[table_name]' 같은 'show table status' 명령어를 사용할 수 있습니다; 반환 결과의 data_free은 공허가 차지하는 저장 공간입니다.

MySQL 시간 처리된 배치 검사 테이블 복구 및 최적화 테이블 최적화 테이블을 구현하는 셸 스크립트는 다음과 같습니다:

원문 언어:

하이퍼링크 로그인이 보입니다.
하이퍼링크 로그인이 보입니다.




이전의:SQLMAP 침투 도구인 SQL 주입 테스트 사용
다음:Windows 테스트 환경에서의 Consul 설치 튜토리얼
 집주인| 게시됨 2023. 7. 6. 오후 6:54:17 |
--점검 표


-- 테이블 고쳐


-- 테이블 최적화


면책 조항:
Code Farmer Network에서 발행하는 모든 소프트웨어, 프로그래밍 자료 또는 기사는 학습 및 연구 목적으로만 사용됩니다; 위 내용은 상업적 또는 불법적인 목적으로 사용되지 않으며, 그렇지 않으면 모든 책임이 사용자에게 부담됩니다. 이 사이트의 정보는 인터넷에서 가져온 것이며, 저작권 분쟁은 이 사이트와는 관련이 없습니다. 위 내용은 다운로드 후 24시간 이내에 컴퓨터에서 완전히 삭제해야 합니다. 프로그램이 마음에 드신다면, 진짜 소프트웨어를 지원하고, 등록을 구매하며, 더 나은 진짜 서비스를 받아주세요. 침해가 있을 경우 이메일로 연락해 주시기 바랍니다.

Mail To:help@itsvse.com