对于使用 InnoDB 存储引擎的情况,计算记录总数更好的方法是:
在表中使用
SELECT COUNT(*)
select * from tbl where pk = 1
或者通过获取数组并从中检索出“total”值
select count(*) as total from tbl where pk = 1
?
对于使用 InnoDB 存储引擎的情况,计算记录总数更好的方法是:
在表中使用 SELECT COUNT(*)
select * from tbl where pk = 1
或者通过获取数组并从中检索出“total”值
select count(*) as total from tbl where pk = 1
?
explain
可以帮助这里。在这种情况下,它会告诉你选择已被优化掉了。select * from tbl where pk = 1
强制 MySQL 物理地检索匹配的行;而
select count(*) as total from tbl where pk = 1
允许MySQL计算主键的条目数,而无需检索任何表行。
后者可能表现更好,因为您只传输一个整数,而在第一种情况下,您将发送更多的数据。
mysql_fetch_array
之前,MySQL实际上不会传输数据。 - Andomar