为什么记录计数值之间存在差异

时间:2012-10-09 10:11:54

标签: mysql

实际我的目的是找出我的数据库中存在的记录数,以便找出我已执行查询,如从information_schema.tables中选择sum(table_rows),其中table_schema ='database_name'; 它给了我一些价值,如90658965

之后我需要单个表中存在的记录数,所以我执行了以下查询 select table_rows,table_name from information_schema.tables where table_schema ='database_name'; 我有像 3781 (table_rows)和ticket(table_name)

这样的结果

所以为了交叉验证我已经执行了像这样的查询 从故障单中选择计数(*); 我有 3552

的结果

为什么上述两个查询的表的计数之间存在差异 票证表的存储引擎是innodb

2 个答案:

答案 0 :(得分:1)

正如The INFORMATION_SCHEMA TABLES Table所述:

  

对于InnoDB表,行计数仅是SQL优化中使用的粗略估计。 (如果InnoDB表已分区,也是如此。)

答案 1 :(得分:0)

SELECT COUNT(*) FROM TABLENAME

此查询是资源激励操作。

information_schema.tables 的总回报率是正确的