信息架构未显示可靠信息?

kri*_*egu 3 mysql innodb information-schema

我目前正在从 SQL Server 迁移到 MySQL。当我尝试匹配行数时,我会查询 information_Schema.tables。我注意到迁移的信息和源信息之间存在一些差异。

但是,我做了一个select count(*) from table;给了我正确的行数

为什么information_Schema.tables.table_rows和之间有区别select count(*) from table

Rol*_*DBA 5

根本原因是存储引擎。InnoDB 不会更新information_schema.tables.table_rows列。

我有旧帖子进一步解释了这一点

您可以使用SHOW INDEXES FROM表格获得近似值

如果您想计算当前数据库中的所有表而不管存储引擎如何,只需运行以下命令:

SET group_concat_max_len = 1024*1024*1024;
SELECT GROUP_CONCAT(sqltocount SEPARATOR ' UNION ') sqlcount INTO @sql
FROM (SELECT CONCAT('SELECT ''',table_name,''' tablename,COUNT(1) RowCount
FROM ',table_name) sqltocount FROM (SELECT table_name FROM
information_schema.tables WHERE table_schema=DATABASE()) AA) A;
SELECT @sql\G PREPARE s FROM @sql; EXECUTE s; DEALLOCATE PREPARE s;
Run Code Online (Sandbox Code Playgroud)

试一试 !!!