MySQL DB Table OPTIMIZE 저장 공간 줄이기 (Storage Shrink 처리)
MySQL에서 DB에서 사용하는 Storage의 사이즈를 줄이는 방법으로 OPTIMIZE를 사용한다.
예를 들어, DB data 정보들을 delete 명령으로 줄였을 때, DB의 물리적인 파일의 용량은 줄지 않게 됩니다. 이럴 때, OPTIMIZE 명령을 통해서, 물리적인 파일 용량을 줄일 수 있다.
요즘 AWS와 같은 Storage의 용량이 가격 증가의 원인이 된다. 이처럼 Storage에 민감한 부분을 잘 관리함으로써, 가격을 줄일 수 있다.
[OPTIMIZE 명령]
mysql> OPTIMIZE TABLE {table name}; |
Optimize 단편화 제거 작업(defrag operation)과 같이, optimize table 명령문을 사용하면 사용하지 않은 공간을 회수할 수 있다. MyISAM 엔진에서는 optimize 명령문은 말그대로 단편화 제거 작업만을 수행한다. |
출처: http://applejara.tistory.com/543 [애플자라]
InnoDB의 경우 메시지 |
Msg_text: Table does not support optimize, doring recreate + analyze instead |
여기서, InnoDB를 MyISAM를 변경하면, 용량이 정리가 됩니다.
그러나, 잘못하면 Storage 증가로 DB 공간를 다 차지할 수 있습니다.
(MyISAM으로 변경하려는 table 1개가 1G이하라면 추천하지만, 그 이상이라면 백업이라던지 작업후에 시도해보시길 바랍니다.)
주의: InnoDB에서 MyISAM으로 변경시 Select는 빨라질수도 있지만, Insert/Update속도가 느려질수도 있습니다. 변경시 성능에 큰 문제가 없을때, 큰용량에만이 문제가 되는 케이스를 추천드립니다.
참고: [[ 리눅스 ]] mysql Database 테이블 모두 최적화하기 (ShellScript방법 안내)
php기본 테이블 돌면서 처리하기 |
|
|
|
출처: http://cafe.daum.net/imeji/GiBV/198?q=mysql%20optimize%20table |
MYSQL 자동 최적화 | Optimize |
|
|
|
http://cafe.daum.net/KingOfLinux/1xBD/36?q=mysql%20optimize%20table |