[MYSQL]InnoDB Optimize

2020. 7. 13. 17:44 Database/mysql

C:\Program Files\MySQL\MySQL Server 5.5\bin>mysqlcheck -u root -p --optimize --databases dg_db_batch

Enter password: **********


mysqlcheck -u root -p --optimize --databases dg_db_batch

mysqlcheck -u root -p --optimize --databases dg_db_chart_day

mysqlcheck -u root -p --optimize --databases dg_db_chart_month

mysqlcheck -u root -p --optimize --databases dg_db_chart_week

mysqlcheck -u root -p --optimize --databases dg_db_finance

mysqlcheck -u root -p --optimize --databases dg_db_index

mysqlcheck -u root -p --optimize --databases dg_db_index_calc

mysqlcheck -u root -p --optimize --databases dg_db_intra


---------------------------------------------------------------------------------------------------------


Optimize

단편화 제거 작업(defrag operation)과 같이, optimize table 명령문을 사용하면 사용하지 않은 공간을 회수할 수 있다. MyISAM 엔진에서는 optimize 명령문은 말그대로 단편화 제거 작업만을 수행한다. 반면 InnoDB 엔진의 경우 내부적으로 ALTER TABLE문을 실행하여, MySQL 서버에 대해 테이블과 인덱스를 재생성하도록 요청한다.

http://dev.mysql.com/doc/refman/5.1/en/optimize-table.html

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

mysql> OPTIMIZE TABLE {table name};

콘솔에서 데이터베이스의 전체 테이블을 optimize를 하려면:

$ mysqlcheck -u root -p --optimize --databases dbname

만약 InnoDB라면 결과에 "Table does not support optimize, doing recreate + analyze instead” 메시지가 나온다.



출처: https://applejara.tistory.com/543 [애플자라]