我最近一直在进行数据库维护,偶然发现了一些奇怪的事情。在标准的清理过程中,我发现运行pt-online-schema-change之前的行数比运行pt-online-schema-change之后的行数低得多。最初,我认为这是一个显示错误,并尝试重新连接。但是,行数保持不变。
在运行数据库维护之前,我从26.000.000行的表中删除了1000万行。在此之后,我下降到16.000.000行。然后我运行pt-online-schema-change添加一列。 2小时后突然显示18.000.000行。所有这些都是在该表中几乎没有活动的几个小时内进行的。 &进一步的挖掘显示,在运行pt-online-schema-change时,仅添加了约1.1000行。
所以。如何解释呢?难道只是大量删除后MySQL的行计数不准确吗?因为这是我本人可以想到的唯一合理的解释,因为pt-online-schema-change创建新表并迁移数据。这意味着该表上的行数是新的。
我使用Sequel Pro,它似乎使用SHOW TABLE STATUS LIKE '...';
来读取行数。
运行pt-online-schema-change后,是否有人对行计数跳跃有任何经验?