如何最有效地计算大表中的总行数?我有23万行的表和下面的查询需要对生产硬件30+秒:MySQL:如何高效地计算大表中的行数?
select count(*) from tablename;
看来,MySQL必须做一个表扫描,但它似乎并不像这应该是必要的。
如何最有效地计算大表中的总行数?我有23万行的表和下面的查询需要对生产硬件30+秒:MySQL:如何高效地计算大表中的行数?
select count(*) from tablename;
看来,MySQL必须做一个表扫描,但它似乎并不像这应该是必要的。
InnoDB中一个表的行数很慢。
另一方面,MyISAM将行计数作为表的属性,这使得您的查询在MyISAM上非常快速。
对于MyISAM来说+1,有时InnoDB并不会削减它:P –
这就是您在InnoDB中为遵守ACID付出的代价。 – Mchl
你有一个主键?桌上有什么指标? –
@Jacob,真的很重要吗?如果InnoDb存在,InnoDb将不得不计数23mi的PK或索引。 – Tocco
它可能在做索引扫描,但它仍然会很慢。 –