標籤:bsp 合并 命令 錯誤 quick gpo 執行 row 使用
一、定期檢查表和分析表
分析表的文法如下:
ANALYZE [LOCAL | NO_WRITE_TO_BINLOG] TABLE tbl_name [, tbl_name] ...
本語句用於分析和儲存表的關鍵字分布,分析的結果將可以使得系統得到準確的統計信 息,使得 SQL 能夠產生正確的執行計畫。如果使用者感覺實際執行計畫並不是預期的執行計 劃,執行一次分析表可能會解決問題。在分析期間,使用一個讀取鎖定對錶進行鎖定。這對 於 MyISAM, BDB 和 InnoDB 表有作用。對於 MyISAM 表,本語句與使用 myisamchk -a 相當, 下例中對錶 sales 做了表分析:
mysql> analyze table sales\G;
*************************** 1. row ***************************
Table: test1.sales
Op: analyze
Msg_type: status
Msg_text: OK
1 row in set (0.01 sec)
檢查表的文法如下:
CHECK TABLE tbl_name [, tbl_name] ... [option] ... option = {QUICK | FAST | MEDIUM | EXTENDED | CHANGED}
檢查表的作用是檢查一個或多個表是否有錯誤。CHECK TABLE 對 MyISAM 和 InnoDB 表有作用。 對於 MyISAM 表,關鍵字統計資料被更新,例如:
mysql> check table sales\G;
*************************** 1. row ***************************
Table: test1.sales
Op: check
Msg_type: status
Msg_text: OK
1 row in set (0.11 sec)
二、定期最佳化表
最佳化表的文法如下:
如果已經刪除了表的一大部分,或者如果已經對含有可變長度行的表(含有 VARCHAR、 BLOB 或 TEXT 列的表)進行了很多更改,則應使用 OPTIMIZE TABLE 命令來進行表最佳化。這個 命令可以將表中的空間片段進行合并,並且可以消除由於刪除或者更新造成的空間浪費,但 OPTIMIZE TABLE 命令只對 MyISAM、BDB 和 InnoDB 表起作用。
以下例子顯示了最佳化表 sales 的過程:
mysql> optimize table sales\G;
*************************** 1. row ***************************
Table: test1.sales
Op: optimize
Msg_type: status
Msg_text: OK
2 rows in set (0.40 sec)
注意:ANALYZE、CHECK、OPTIMIZE 執行期間將對錶進行鎖定,因此一定注意要在資料庫不 繁忙的時候執行相關的操作。
mysql最佳化三 (兩個簡單實用的最佳化方法)