【发布时间】:2015-12-21 21:20:29
【问题描述】:
我想知道通过select COUNT(*) from table获取数据和mysqli_num_rows($ofquery)(在php中)获取行数之间的区别?
我尝试了两种方式并且效果很好。但是方法更快?
【问题讨论】:
我想知道通过select COUNT(*) from table获取数据和mysqli_num_rows($ofquery)(在php中)获取行数之间的区别?
我尝试了两种方式并且效果很好。但是方法更快?
【问题讨论】:
使用COUNT,服务器内部会以不同的方式处理请求。
在做COUNT时,服务器只会分配内存来存储计数的结果。
使用mysqli_num_rows时,服务器会处理整个结果集,为所有结果分配内存,并将服务器置于获取模式,这涉及到很多不同的细节,例如锁定。
把它想象成下面的伪场景:
1) 嘿,教室里有多少人? (计数)
2) 嘿,给我一份教室里所有人的名单,……我自己计算人数(mysqli_num_rows)
count 比mysqli_num_rows 最好
【讨论】:
mysql_* 而不是mysqli_* 的答案,即使在这种特殊情况下差异很小)。在这种情况下,只需将问题作为重复项关闭即可。