MySQL:如何有效地计算大表中的行数?

时间:2011-07-14 20:51:50

标签: mysql

最有效地计算大表中总行数的方法是什么?我有一个包含2300万行的表,以下查询在生产硬件上需要30秒以上:

select count(*) from tablename;

似乎MySQL必须进行表扫描,但似乎这不应该是必要的。

3 个答案:

答案 0 :(得分:14)

如果近似值足够,您可以使用:

show table status like 'tablename'

答案 1 :(得分:3)

InnoDB中表的行数很慢。

另一方面,MyISAM将行计数作为表的属性,这使得您的查询在MyISAM上非常快。

答案 2 :(得分:0)

使用缓存查询从表

中选择SELECT SQL_CACHE count(column_name)