在主從複製中Checksum經常須要對某些重要的表進行一致性檢查。操作系統
Checksum table計算返回值的邏輯大體以下:code
ha_checksum crc= 0; foreach(row in table) { row_crc= get_crc(row); crc+= row_crc; } return crc;
能夠看到只要總行數以及行內容相同,與讀取行的順序無關。索引
從這個邏輯還能獲得一下幾個結論: 1)與使用的引擎無關,也就是說即便主備不用同一個引擎,checksum也可用於檢查。雖然InnoDB有隱藏行,但這裏無視。get
2)與是否有索引無關。row_crc只用行自己的數據來計算,並不包括索引數據。 也就是說若是可以保證兩個表裏面的數據同樣,表結構(列內容和順序同樣),操做系統同樣,MySQL版本一致,是可以保證checksum的結果的。table