MySQL編程 優化篇(三) SQL優化(ⅲ)兩個常用的優化技巧

定期分析和檢查表

分析表的語法如下: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執行期間將對錶進行鎖定,因此一定注意要在數據庫不繁忙的時候執行相關的操作。

發佈了74 篇原創文章 · 獲贊 132 · 訪問量 7萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章