sur*_*r80 5 mysql database count information-schema
将 information_schema.TABLES.table_rows 列与从“SELECT count(*) from”检索到的物理行计数进行比较时,数字不匹配。为什么行数不同?
mysql> select TABLE_ROWS from TABLES where TABLE_NAME = 'gbl_session' and TABLE_SCHEMA = 'mydb';
+------------+
| TABLE_ROWS |
+------------+
| 7306 |
+------------+
1 row in set (0.01 sec)
mysql> select count(*) from mydb.gbl_session;
+----------+
| count(*) |
+----------+
| 7800 |
+----------+
1 row in set (0.01 sec)
Run Code Online (Sandbox Code Playgroud)
对于 InnoDB 表,行数只是 SQL 优化中使用的粗略估计。(如果 InnoDB 表已分区,也是如此。)
阅读此内容以获取更多信息:https ://dev.mysql.com/doc/refman/5.1/en/tables-table.html
正如那里的评论所建议的,您可以尝试:
TABLE_ROWS(也许还有 INFORMATION_SCHEMA.TABLES 中的其他一些列)可能与当前表内容不同步,但您可以通过运行 ANALYZE 来更新它。