analyze table table_name; analyze 用於收集優化器的統計信息、和tuning相關;對 myisam、BOB、innodb起做用 注意:(通過實踐操做 在MySQL5.5版本下執行sql:analyze table table_name 會立刻返回一個ok狀態,可是後端仍然會出現鎖表等狀況)
check table table_name; 對myisam(關鍵字統計數據被更新)和innodb都有做用,對於myisam來講,須要check和repair(因爲myisam表可能損壞)
optimize table table_name; 對myisam,bob和innodb表起做用,可是該操做會引發鎖表
optimize local table table_name;
====小結:====sql
在MySQL實際生產環境中,對於一些常常性DML操做的表,是須要按期在業務低峯期執行optimize來收縮表空間,對於優化慢sql和壓縮磁盤都有較大的好處。後端
analyze 和optimize都是會鎖表的,(固然是由於業務生產中基本選擇了innodb的前提下)注意在業務高峯期切忌操做。優化