文件首頁
MySQL 8.4 參考手冊
相關文件 下載本手冊
PDF (美式信紙尺寸) - 39.9Mb
PDF (A4) - 40.0Mb
Man Pages (TGZ) - 258.5Kb
Man Pages (Zip) - 365.5Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


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

15.7.3.3 CHECKSUM TABLE 陳述式

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

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

此陳述式需要資料表的 SELECT 權限。

檢視表不支援此陳述式。 如果您針對檢視表執行 CHECKSUM TABLEChecksum 值一律為 NULL,並會傳回警告。

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

在校驗和作業期間,資料表會使用 InnoDBMyISAM 的讀取鎖定來鎖定。

效能考量

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

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

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

重要事項

如果兩個資料表的校驗和不同,則幾乎可以確定這兩個資料表在某些方面有所不同。 不過,由於 CHECKSUM TABLE 使用的雜湊函數不能保證沒有衝突,因此兩個不相同的資料表有可能產生相同的校驗和。