MySQL:8028(含)以下 checksum table 不一致的问题
作者简介:高鹏,笔名八怪。《深入理解MySQL主从原理》图书作者,同时运营个人公众号“MySQL学习”,持续分享遇到的有趣case以及代码解析!
最近遇到不少的案例,其中一个比较有意思的checksum table在8028(含)以下出现instant列会导致checksum table不一致的问题,因为日常校验数据的时候经常使用checksum table进行校验,感觉问题比较严重,就稍微看了下,现记录如下。
触发方式
这个触发方式很简单(8023/8028测试),如下:
<code>mysql> create table i1(id int);
Query OK, 0 rows affected (0.07 sec)
mysql> alter table i1 add name varchar(20);
Query OK, 0 rows affected (0.06 sec)
Records: 0 Duplicates: 0 Warnings: 0
mysql> create table i2 like i1;
Query OK, 0 rows affected (0.04 sec)
mysql> insert into i1 values(1,'g');
Query OK, 1 row affected (0.00 sec)
mysql> insert into i2 values(1,'g');
Query OK, 1 row affected (0.01 sec)
mysql> checksum table i1;
+-------------+------------+
| Table | Checksum |
+-------------+------------+
| test1227.i1 | 1843999801 |
+-------------+------------+
1 row in set (0.00 sec)
mysql> checksum table i2;
+-------------+------------+
| Table | Checksum |
+-------------+------------+
| test1227.i2 | 1025811850 |
+-------------+------------+
1 row in set (0.00 sec)