mysql的checksum

前言

在主從複製中Checksum經常須要對某些重要的表進行一致性檢查。操作系統

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

相關文章
相關標籤/搜索