Mysql optimize、Analyze、check、repair維護操作

guocun09發表於2017-10-11

optimize、Analyze、check、repair維護操作

optimize
資料在插入,更新,刪除的時候難免一些資料遷移,分頁,之後就出現一些碎片,久而久之碎片積累起來影響效能,這就需要DBA定期的最佳化資料庫減少碎片,這就透過optimize命令。 optimize table 表名。

碎片可根據show table status 檢視,實際資料data_length 與空洞碎片資料data_free 比例判斷
注意: optimize table 產生鎖,推薦業務底峰時執行,也只能針對MyISAM

如果InnoDB需要使用alter table tabname engine=innodb

 

Analyze
用來分析和儲存表的關鍵字的分佈,使得系統獲得準確的統計資訊,影響 SQL 的執行計劃的生成。對於資料基本沒有發生變化的表,是不需要經常進行表分析的。但是如果表的資料量變化很明顯,使用者感覺實際的執行計劃和預期的執行計劃不 同的時候,執行一次表分析可能有助於產生預期的執行計劃。

Analyze table 表名


Check
檢查表或者檢視是否存在錯誤,對 MyISAM 和 InnoDB 儲存引擎的表有作用。對於 MyISAM 儲存引擎的表進行表檢查,也會同時更新關鍵字統計資料

Repair optimize需要有足夠的硬碟空間,否則可能會破壞表,導致不能操作,那就要用上repair,注意INNODB不支援repair操作

參考:
http://www.cnblogs.com/littlehb/archive/2013/05/08/3067175.html

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/25583515/viewspace-2145837/,如需轉載,請註明出處,否則將追究法律責任。

相關文章