文件首頁
MySQL 9.0 參考手冊
相關文件 下載本手冊
PDF (US Ltr) - 40.0Mb
PDF (A4) - 40.1Mb
Man Pages (TGZ) - 258.2Kb
Man Pages (Zip) - 365.3Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


MySQL 9.0 參考手冊  /  ...  /  CHECKSUM TABLE 陳述式

15.7.3.3 CHECKSUM TABLE 陳述式

CHECKSUM TABLE tbl_name [, tbl_name] ... [QUICK | EXTENDED]

CHECKSUM TABLE 會報告表格內容的校驗碼。您可以使用此陳述式來驗證在備份、回滾或其他旨在將資料恢復到已知狀態的操作之前和之後,內容是否相同。

此陳述式需要該表格的 SELECT 權限。

此陳述式不支援檢視表。如果對檢視表執行 CHECKSUM TABLE,則 Checksum 值永遠為 NULL,並會傳回警告。

對於不存在的資料表,CHECKSUM TABLE 會傳回 NULL 並產生警告。

在檢查總和作業期間,資料表會被讀取鎖定,適用於 InnoDBMyISAM

效能考量

依預設,會逐列讀取整個資料表並計算總和檢查碼。對於大型資料表,這可能需要很長時間,因此您只會偶爾執行此作業。此逐列計算是您使用 EXTENDED 子句所得到的結果,適用於 InnoDB 和所有其他儲存引擎(MyISAM 除外),以及未使用 CHECKSUM=1 子句建立的 MyISAM 資料表。

對於使用 CHECKSUM=1 子句建立的 MyISAM 資料表,CHECKSUM TABLECHECKSUM TABLE ... QUICK 會傳回可快速傳回的 即時資料表總和檢查碼。如果資料表不符合所有這些條件,QUICK 方法會傳回 NULLQUICK 方法不支援 InnoDB 資料表。如需 CHECKSUM 子句的語法,請參閱 第 15.1.20 節,「CREATE TABLE 陳述式」

總和檢查碼的值取決於資料表列格式。如果列格式變更,總和檢查碼也會變更。例如,MySQL 5.6 中在 MySQL 5.6.5 之前,時間類型(如 TIMEDATETIMETIMESTAMP)的儲存格式已變更,因此如果將 5.5 資料表升級到 MySQL 5.6,則總和檢查碼值可能會變更。

重要

如果兩個資料表的總和檢查碼不同,則幾乎可以確定資料表在某些方面有所不同。但是,由於 CHECKSUM TABLE 使用的雜湊函式無法保證沒有衝突,因此兩個不相同的資料表有可能產生相同的總和檢查碼。