字體:  

設定排程讓MySQL 自動最佳化資料表 (optimize)

apple 發表於: 2012-1-10 03:25 來源: ADJ網路控股集團


當發現網站運作的速度越來越慢, 主要原因應該是資料越來越多, Database 也開太多,所以要來為所有 DB 做 Optimize 和 Repair 的動作. 

在 Mysql 5 以上就有提供 mysqlcheck 這樣功能的程式可以用 ~~ 用法如下:

QUOTE:

/usr/bin/mysqlcheck -opr -uroot -p --databases discuz
輸入密碼之後就可以最佳化 discuz 的資料庫

如果要最佳化所有的資料庫...可以使用底下語法:

QUOTE:

/usr/bin/mysqlcheck -acor -uroot -p --all-database
# 此命令就可以 Check 所有 MyISAM 的 Table, 非 MyISAM 會出現 "Table does not support optimize, doing recreate + analyze instead" 自動略過

-a = Analyse given tables.
-c = Check table for errors
-o = Optimise table
-r = Can fix almost anything except unique keys that aren't unique

如果要最佳化所有的資料庫...並且自動代入MySQL密碼...可以使用底下語法:

QUOTE:

/usr/bin/mysqlcheck -acor -uroot --password='12345678' --all-database

再來就可以使用自動排程下去執行囉~~