问题 #
Navicat 显示的行数与实际表行数不一致。
原因 #
MySQL information_schema.TABLES
表的 TABLE_ROWS
字段对不同存储引擎计数规则不同:MyISAM 精确计数,InnoDB 等其他引擎为近似值(相差 40%-50%)。
解决 #
使用 SELECT COUNT(*)
查询获取准确行数。
修正 <code>TABLE_ROWS</code> #
文章中提到可以使用 ANALYZE TABLE big_table_name
来尝试修正 TABLE_ROWS
字段的值,但是作者尝试后发现并不能更正数据,而且该操作还会耗时锁表,因此不建议使用。