定期分析和檢查表
分析表的語法如下:ANALYZE [LOCAL | NO_WRITE_TO_BINLOG] TABLE tbl_name [, tbl_name] . .
分析的結果將可以使得系統得到準確的統計信息,使得SQL能夠生成正確的執行計劃。在分析期間,會使用一個讀取鎖定對錶進行鎖定。
案例:
檢查表的語法如下:CHECK TABLE tbl_name [, tbl_name] . . [option] . . option = {QUICK | FAST | MEDIUM | EXTENDED | CHANGED}
檢查表的作用是檢查一個或多個表是否有錯誤,也可以用於檢查視圖。
案例:
定期優化表
優化表的語法如下:OPTIMIZE [LOCAL | NO_WRITE_TOBINLOG] TABLE tbl_name [.tbl_name]..
如果已經刪除了表的一大部分,或者如果已經對含有可變長度行的表(含有VARCHAR、BLOB或TEXT列的表)進行了很多更改,則應使用OPTIMIZE TABLE命令來進行表優化。這個命令可以將表中的空間碎片進行合併,並且可以消除由於刪除或者更新造成的空間浪費。
但OPTIMIZE TABLE命令只對MyISAM、BDB和 InnoDB表起作用。
注意:
ANALYZE、CHECK、OPTIMIZE、ALTER TABLE執行期間將對錶進行鎖定,因此一定注意要在數據庫不繁忙的時候執行相關的操作。