【问题标题】:Mysql COUNT(*) and myql_num_rows in php: Which is faster? [duplicate]php中的Mysql COUNT(*)和mysqli_num_rows:哪个更快? [复制]
【发布时间】:2015-12-21 21:20:29
【问题描述】:

我想知道通过select COUNT(*) from table获取数据和mysqli_num_rows($ofquery)(在php中)获取行数之间的区别?

我尝试了两种方式并且效果很好。但是方法更快?

【问题讨论】:

    标签: php mysql


    【解决方案1】:

    使用COUNT,服务器内部会以不同的方式处理请求。

    在做COUNT时,服务器只会分配内存来存储计数的结果。

    使用mysqli_num_rows时,服务器会处理整个结果集,为所有结果分配内存,并将服务器置于获取模式,这涉及到很多不同的细节,例如锁定。

    把它想象成下面的伪场景:

    1) 嘿,教室里有多少人? (计数)

    2) 嘿,给我一份教室里所有人的名单,……我自己计算人数(mysqli_num_rows)

    countmysqli_num_rows 最好

    Reference from here.

    【讨论】:

    • 不要复制粘贴相同的答案(尤其是使用mysql_* 而不是mysqli_* 的答案,即使在这种特殊情况下差异很小)。在这种情况下,只需将问题作为重复项关闭即可。
    猜你喜欢
    • 1970-01-01
    • 2011-11-22
    • 1970-01-01
    • 1970-01-01
    • 2011-01-29
    • 2011-02-12
    • 1970-01-01
    • 2010-10-07
    相关资源
    最近更新 更多