对于 InnoDB,它通常依赖于聚簇索引来获取表的行数,聚簇索引直接将表数据存储在索引叶节点中,避免了额外的查找开销,因此相对高效。相比全表扫描,主键索引扫描通常更高效。会通过主键或索引更高效地完成计数,但现代 MySQL 的优化器已经能很好地处理两种情况,几乎没有差异。,如果表中存在合适的覆盖索引,MySQL 也可以通过索引完成统计,而无需扫描整个表。上例中,从表中抽取 100 行样本,假设表的总行数为 1000,则近似估算总行数为。从表中抽取一定比例的数据样本,计算样本的行数,然后根据比例推算总行数。