Mysql 데이터베이스/테이블을 자동으로 최적화(Optimize) 하기
Mysql을 사용하다 보면 종종 최적화 되지 않은 테이블을 발견할 때가 있습니다.
일일이 command line에서 `optimize table tablename`을 하는것이 귀찮았었는데,
구글링을 하다 보니 역시나 방법이 있더군요
1. 리눅스 스케줄러 데몬(Crond)을 사용
먼저 리눅스에서 제공하는 cron을 사용해서 특정한 시간에 최적화를 시작하도록 설정합니다.
2. mysqlcheck 명령
mysqlcheck 명령을 이용해서 특정 테이터베이스나 테이블 혹은 전체 데이터베이스에 대해서 analyze 또는 optimize가 가능합니다.
– 옵션
-o : optimize
-A : 전체 데이터베이스
-a : analyze
3. 사용방법
– 먼저 스케줄러를 수정합니다.
# crontab -e
– 적당한 줄에 아래 내용을 추가합니다.
0 1 * * * /usr/bin/mysqlcheck -o -uroot -p(비밀번호) (데이터베이스명) > /dev/null
– 예를들어 비밀번호가 1234, abc라는 데이터베이스를 최적화 하려면
0 1 * * * /usr/bin/mysqlcheck -o -uroot -p1234 abc > /dev/null
– 모든 데이터베이스를 최적화
0 1 * * * /usr/bin/mysqlcheck -A -o -uroot -p1234 > /dev/null