之间的区别(性能明智)
$var = mysql_query("select * from tbl where id='something'");
$count = mysql_num_rows($var);
if($count > 1){
do something
}
和
$var = mysql_query("select count(*) from tbl where id='somthing'");
附注:我知道mysql_ *已过时。
最佳答案
select *
要求mysql从该表中获取所有数据(根据条件)并将其提供给您,这不是一个非常可优化的操作,它将导致大量数据被组织并通过套接字发送给PHP。
由于您随后对该数据不执行任何操作,因此您已要求mysql对所有数据进行任何处理。
相反,仅要求mysql count()
满足条件的行数将不会导致它尝试向您发送所有数据,并且将导致查询速度更快,尤其是在对id
字段进行索引的情况下。
总的来说,如果您的php应用程序仍然很简单,并且仍然是很好的实践,那么这可能被认为是微优化。
关于php - 使用计数而不是mysql_num_rows?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15525212/