Recent Posts
Recent Comments
Link
11-17 02:31
Today
Total
관리 메뉴

삶 가운데 남긴 기록 AACII.TISTORY.COM

MYSQL 최적화 본문

DEV&OPS/Database

MYSQL 최적화

ALEPH.GEM 2022. 8. 2. 17:09

데이터 무결성 검사

단일 테이블에 대해 무결성 검사를 하려면

mysql> CHECK TABLE 데이터베이스이름.테이블이름;

리눅스 콘솔에서 전체 테이블을 검사 하려면

mysqlcheck -u root -p --check --databases 데이터베이스이름

테이블 무결성 검사는 정기적으로 하는 것을 권장합니다.

 

 

Optimize

사용하지 않은 공간을 회수합니다.

MyISAM 엔진을 쓰는 MySQL에서는 optimize 명령은 단편화 제거 작업만을 수행합니다.

InnoDB 엔진을 쓰는 MySQL에서는 ALTER문으로 인덱스를 재생성하도록 요청합니다.

단일 테이블에 대해 optimize 하려면

mysql> OPTIMIZE TABLE 데이터베이스이름.테이블이름;

리눅스 콘솔에서 전체 테이블을 optimize 하려면

mysqlcheck -u root -p --optimize --databases 데이터베이스이름

콘솔에서 작업시 만약에 MySQL엔진이 InnoDB라면 결과에 "Table does not support optimize, doing recreate + analyze instead" 메시지가 나옵니다.

 

 

Analyze

인덱스를 재생성하여 성능을 최적화합니다.

join시 쿼리가 지나치게 느리다면 analyze를 실행해보는 것을 고려할만 합니다.

analyze를 실행하면 read 락이 걸리므로 운영중에 실행은 권장하지 않습니다.

만약 엔진이 InnoDB 엔진이라면 optimize 과정에 analyze가 포함되어 있으므로 따로 실행하지 않아도 됩니다.

단일 테이블에 대해 analyze를 하려면

mysql> ANALYZE TABLE 데이터베이스이름.테이블이름;

리눅스 콘솔에서 전체 테이블을 analyze 하려면

mysqlcheck -u root -p --analyze --databases 데이터베이스이름

 

 

 

 

 

 

 

 

 

 

 

 

728x90