1

我最近一直在做一些数据库维护,偶然发现了一些很奇怪的东西。在标准程序清理过程中,我发现运行 pt-online-schema-change 之前的行数远低于运行 pt-online-schema-change 之后的行数。最初我认为这是一个显示错误并尝试重新连接。但是,行数保持不变。

在运行我的数据库维护之前,我从一个有 26.000.000 行的表中删除了 10.000.000 行。在此之后,我下降到 16.000.000 行。然后我运行 pt-online-schema-change 来添加一列。2 小时后完成后突然显示 18.000.000 行。所有这些都是在此表中几乎没有活动的时间段内进行的。& 进一步的挖掘表明,在 pt-online-schema-change 运行时只增加了大约 11.000 行。

所以。如何解释这一点?难道仅仅是因为 MySQL 的行数在大规模删除后变得不准确吗?因为这是我自己能想到的唯一合理解释,因为 pt-online-schema-change 创建了一个新表并迁移数据。这意味着该表上的行数是新的。

我使用 Sequel Pro,它似乎用来SHOW TABLE STATUS LIKE '...';读取行数。

有没有人在运行 pt-online-schema-change 后对行数跳跃有任何经验?

4

0 回答 0