我必须计算数据库中的记录总数。我想知道MySQL执行此操作的有效/快捷方式。我可以用:
(1)
$rslt=mysql_query("select * from table");
$count = mysql_num_rows($rslt);
或(2)使用以下查询:
select count(*) from table;
数据库的哪些查询效率很高?
答案 0 :(得分:3)
第一个(select * from ...
)必须实际读取行,而第二个将从数据库返回int
。对于大型表格,第二个会更快。
答案 1 :(得分:0)
如果您的表格非常大,我希望第二个查询的表现优于第一个。
它不需要实际从DB获取大量数据到客户端。在这种情况下,SELECT *
是一个可怕的想法。 SELECT 1
不必加载每个字段。
如果您的表在其主键上编入索引,则RDBMS可能能够从索引中以递归方式获取结果。