程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> 關於MYSQL數據庫 >> MySQL的維護語句(優化、修復、檢查

MySQL的維護語句(優化、修復、檢查

編輯:關於MYSQL數據庫
MySQL的維護語句(優化、修復、檢查) 2010-02-22 16:22 Analyze Table MySQL 的Optimizer(優化元件)在優化SQL語句時,首先需要收集一些相關信息,其中就包括表的cardinality(可以翻譯為“散列程度”),它表示某個索引對應的列包含多少個不同的值——如果cardinality大大少於數據的實際散列程度,那麼索引就基本失效了。
我們可以使用 SHOW INDEX語句來查看索引的散列程度:SHOW INDEX FROM PLAYERS; TABLE   KEY_NAME COLUMN_NAME CARDINALITY PLAYERS PRIMARY  PLAYERNO             14 因為此時PLAYER表中不同的PLAYERNO數量遠遠多於14, 索引基本失效。
下面我們通過Analyze Table語句來修復索引:ANALYZE TABLE PLAYERS;
SHOW INDEX FROM PLAYERS; TABLE   KEY_NAME COLUMN_NAME CARDINALITY PLAYERS PRIMARY  PLAYERNO           1000 此時索引已經修復,查詢效率大大提高。需要注意的 是,如果開啟了binlog,那麼Analyze Table的結果也會寫入binlog,我們可以在analyze和table之間添加關鍵字local取消寫入。Checksum Table 數 據在傳輸時,可能會發生變化,也有可能因為其它原因損壞,為了保證數據的一致,我們可以計算checksum(校驗值)。
使用MyISAM引擎的 表會把checksum存儲起來,稱為live checksum,當數據發生變化時,checksum會相應變化。
在執行Checksum Table時,可以在最後指定選項qiuck或是extended;qiuck表示返回存儲的checksum值,而extended會重新計算 checksum,如果沒有指定選項,則默認使用extended。Optimize Table 經常更新數據的磁盤需要整理碎片,數據庫 也是這樣,Optimize Table語句對MyISAM和InnoDB類型的表都有效。
如果表經常更新,就應當定期運行Optimize Table語句,保證效率。
與Analyze Table一樣,Optimize Table也可以使用local來取消寫入binlog。Check Table 數 據庫經常可能遇到錯誤,譬如數據寫入磁盤時發生錯誤,或是索引沒有同步更新,或是數據庫未關閉MySQL就停止了。 Incorrect key file for table: ' '. Try to repair it.
此時,我們可以使用 Check Table語句來檢查表及其對應的索引。
譬如我們運行
CHECK TABLE PLAYERS; 結果是
TABLE          OP    MSG_TYPE MSG_TEXT TENNIS.PLAYERS check status   OK MySQL會保存表最近一次檢查的時間,每次運行check table都會存儲這些信息:執 行
SELECT    TABLE_NAME, CHECK_TIME
FROM      INFORMATION_SCHEMA.TABLES
WHERE     TABLE_NAME = 'PLAYERS'
AND       TABLE_SCHEMA = 'TENNIS'; 結果是 TABLE_NAME   CHECK_TIME PLAYERS      2006-08-21 16:44:25 Check Table還可以指定其它選項:
UPGRADE:用來測試在更早版本的 MySQL中建立的表是否與當前版本兼容。
QUICK:速度最快的選項,在檢查各列的數據時,不會檢查鏈接(link)的正確與否,如果沒有遇到什麼問題,可以使用這個選項。
FAST:只檢查表是否正常關閉,如果在系統掉電之後沒有遇到嚴重問題,可以使用這個選項。
CHANGED: 只檢查上次檢查時間之後更新的數據。
MEDIUM:默認的選項,會檢查索引文件和數據文件之間的鏈接正確性。
EXTENDED:最慢的選 項,會進行全面的檢查。Repair Table 用於修復表,只對MyISAM和ARCHIVE類型的表有效。 QUICK:最快的選項,只修復索引樹。
EXTENDED:最慢的選項,需要逐行重建索引。
USE_FRM:只有當 MYI文件丟失時才使用這個選項,全面重建整個索引。與Analyze Table一樣,Repair Table也可以使用local來取消寫入binlog。
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved