MySQL 8-모든 테이블 + 인덱스 최적화
Nov 27 2020
여러 데이터베이스 (MySQL 8) 내에 많은 테이블 (InnoDB)이 있으며, 매일 가비지 수집 스크립트를 실행하여 더 이상 필요하지 않은 오래된 레코드를 제거합니다. 모든 테이블에는 인덱스가 있습니다.
성능을 높이기 위해 매주 모든 테이블을 최적화하는 것이 합리적일까요? 그렇다면 실행할 수있는 좋은 명령이 있습니까?
나는 시도했다
sudo mysqlcheck -o --all-databases
그러나 다음과 같은 오류 메시지가 나타납니다.
note : Table does not support optimize, doing recreate + analyze instead
status : OK
답변
1 RickJames Nov 29 2020 at 14:36
귀찮게하지 마십시오. InnoDB는 대부분 스스로 처리합니다. OPTIMIZE
일시적으로 일부 낭비되는 공간을 짜내지만 삽입물 등이 발생하면 새로운 낭비가 발생합니다. 의 성능 이점은 OPTIMIZE
거의 없습니다.
1 RolandoMySQLDBA Nov 27 2020 at 04:39
이러한 메시지는 InnoDB에서 정상입니다. 계속할 수 있습니다.
InnoDB 스토리지 엔진은 다음 OPTIMIZE TABLE mydb.mytable;
과 같이 수행 합니다.
ALTER TABLE mydb.mytable ENGINE=InnoDB;
ANALYZE TABLE mydb.mytable;
나는 수년에 걸쳐 이것을 언급했습니다.
Sep 27, 2015
: MySQL에서 테이블 조각 모음을 수행하려면 어떻게해야합니까?Jun 24, 2015
: 테이블 변경 후 최적화 테이블 호출 지침?Feb 27, 2013
: MySQL에서 테이블 최적화와 테이블 분석의 차이점은 무엇입니까?Aug 04, 2011
: InnoDB 기본 설정 최적화
매일 또는 매주 분석하는 것이 좋습니다.
sudo mysqlcheck --analyze --all-databases
그런 다음 한 달에 한 번 또는 분기에 한 번 최적화를 수행하십시오.