
在mysql工作台中单击某个特定表的info时,有一个名为表行的参数,它旁边有一个数字。它与表中的实际记录数不匹配,在单击Analyze以更新可能过时的参数后,它也不同步到实际计数。这说明了什么?
发布于 2019-10-09 18:49:48
这是num_rows列在information_schema.tables (或来自information_schema.innondb_sys_tablestats)中的值。
这是对表中行数的估计;在评估可能的执行计划的可能成本(性能)时,优化器使用它。
对于InnoDB,统计数据是使用抽样技术收集的,随机深入地深入到多个页面中;抽样页面的结果被推断到整个表中。
同样,num_rows并不是表中行数的精确计数;它是优化器使用的估计值。
请参阅MySQL参考手册ANALYZE TABLE和InnoDB统计信息收集。
参考资料:
https://dev.mysql.com/doc/refman/8.0/en/innodb-performance-optimizer-statistics.html
https://stackoverflow.com/questions/58310364
复制相似问题