将表从 MyISAM 转换为 InnoDB 后,“show table status”命令返回的行数与“count(*)”命令显示的行数不同。这可能是由于 InnoDB 表使用了紧凑的行格式。
我想知道是否有一种方法可以通过“显示表状态”命令快速获取 InnoDB 引擎上所有表的正确行号,就像它对 MyISAM 表显示的那样。
答案1
我觉得你运气不好。摘自以下精美手册:
http://dev.mysql.com/doc/refman/5.1/en/show-table-status.html
行数。某些存储引擎(例如 MyISAM)会存储精确计数。对于其他存储引擎(例如 InnoDB),此值是近似值,可能与实际值相差 40% 到 50%。在这种情况下,请使用 SELECT COUNT(*) 来获取精确计数。