1、對錶進行最佳化
2、對錶進行分析(分析並儲存myisam和bdb表中鍵的分布)
3、對錶進行檢查(檢查表的錯誤,並且為myisam更新鍵的統計內容)
4、對錶進行修複(修複被破壞的myisam表)
一、對錶進行最佳化
最佳化表有很多方式實現: optimize table語句、mysql教程check工具(伺服器要運行)或myisamchk(伺服器沒有運行或表中沒有互動)
為什麼最佳化?隨著mysql的使用,包括blob和varchar位元組的表將變得比較繁冗,因為這些欄位長度不同,對記錄進行插入、更新或刪除時,會佔有不同大小的空間,記錄就會變成片段,且留下閒置空間。像具有片段的磁碟,會降低效能,需要整理,因此要最佳化。
1、利用optimize語句對錶進行最佳化
# mysql>optimize table 表名
這樣就對錶名進行了最佳化。
2、利用mysqlcheck對錶進行最佳化
mysqlcheck可進行最佳化外,還可執行大量的檢查和修複任務。
# mysqlcheck -o 資料庫教程名 表名 -uroot -p111111(一張表)
# mysqlcheck -o 資料庫名 表名1 表名2 -uroot -p111111(多張表)
# mysqlcheck -o 資料庫名 -uroot -p111111(對整個資料庫)
3、利用myisamchk對錶進行最佳化
# myisamchk --quick --check-only-changed --sort-index --analyze 表名
# myisamchk -r 表名(參數-r表示對錶進行修複,同時也刪去了浪費的空間)
# myisamchk -r /usr/local/mysql/data/testblog/article(指定表所在的路徑)
以上操作需在伺服器關閉或沒有與伺服器互操作的時候,可以使用myisamchk命令列工具(如果伺服器正在運行,那麼在運行這條語句之前利用mysqladmin flush-tables對錶進行重新整理;需確保伺服器沒有與表進行互操作,否則會出現故障)。myisamchk是最老的方法。必須在正確位置上運行myisamchk,或者指定表所在的路徑。
注意:在最佳化過程中,表會被鎖住,因此不要在忙時進行最佳化操作。同樣,需要有足夠的空間才能進行optimize table。如果沒有磁碟空間,mysql將不能進行最佳化,表也無法使用。
最佳化是對包含myisam表的資料庫的常規管理事務中一個重要環節,應該定期進行。
二、對錶進行分析
對錶的定期分析可以改善效能,且應該成為常規維護工作的一部分。因為通過更新表的索引資訊對錶進行分析,可改善資料庫效能。
有三種方法可以對錶進行分析:
1、串連到mysql時,使用analyze table語句
2、利用mysqlcheck命令列工具(伺服器需要運行,並且只對myisam表起作用)
3、利用myisamchk命令列工具(伺服器不應該運行,或無對所操作的表發生互操作)
# analyze table 表名;
# mysqlcheck -a 資料庫名 表名 -uroot -p111111
# mysqlcheck -a 資料庫名 表名1 表名2 -uroot -p111111
如果試圖對不支援分析操作的表進行分析(如innodb),那操作將無法進行。
# myisamchk -a /usr/local/mysql/data/資料庫/表名