MySQL 에서는 테이블이 손상 되었는지 여부를 확인(check table)하고, 손상된 테이블이라면 테이블을 복구(repair table)하고, 속도 개선을 위해 테이블을 최적화(optimize table) 하는 기능들을 제공한다. 이 기능들에 대한 쿼리는 상당히 단순하다.



1. MySQL 특정 테이블 체크(check)

DB 콘솔 접속 후

# use [DB명];                   => 작업할 DB를 선택

# check table [테이블명];   => 확인할 테이블을 체크



2. MySQL 특정 테이블 복구(repair)

DB 콘솔 접속 후

# use [DB명];                   => 작업할 DB를 선택                 

# repair table [테이블명];    => 복구할 테이블을 복구



3. MySQL 특정 테이블 최적화(optimize)

DB 콘솔 접속 후

# use [DB명];                    => 작업할 DB를 선택

# optimize table [테이블명]; => 최적화할 테이블을 최적화



그리고 위와 같이 특정 테이블에 대해 체크, 복구, 최적화를 할 수 있으나, 서버 장애 등으로 인해 DB의 전체 상태를 점검하거나 전체를 최적화하고 싶을 때는 테이블 하나하나 확인을 하기 어렵다. 그럴 때 아래와 같이 특정 DB의 모든 테이블을 체크하고, 복구하고, 최적화 할 수 있다.



4. MySQL 특정 DB의 모든 테이블 체크 및 자동 복구

서버 콘솔에서

# cd [MySQL_HOME]/bin                                                                

=> MySQL 설치 홈의 bin 폴더로 이동

# ./mysqlcheck -u [DB계정] -p[패스워드] --auto-repair [DB명]           

=> 해당 DB의 모든 테이블을 체크 및 자동복구



5. MySQL 특정 DB의 모든 테이블 최적화

서버 콘솔에서

# cd [MySQL_HOME]/bin                                                                

=> MySQL 설치 홈의 bin 폴더로 이동

# ./mysqlcheck -u [DB계정] -p[패스워드] --optimize [DB명]               

=> 해당 DB의 모든 테이블을 최적화