首页  >  文章  >  数据库  >  哪个性能更好:带索引或不带索引的 PDO::rowCount() 或 COUNT(*)?

哪个性能更好:带索引或不带索引的 PDO::rowCount() 或 COUNT(*)?

Barbara Streisand
Barbara Streisand原创
2024-10-24 07:14:02353浏览

Which is More Performant: PDO::rowCount() or COUNT(*) With or Without an Index?

PDO::rowCount 与 COUNT(*) 性能比较

问题:

在带有行计数检查的 SELECT 查询中,哪个性能更好:使用 PDO::rowCount() 还是在查询中包含 COUNT(*)?另外,当在 id 字段上设置索引时,哪个选项更有效?

答案:

第一个问题:Count(*) 与 PDO ::rowCount()

在内部,MySQL 中的 COUNT() 分配最小的内存来仅存储计数结果,而 PHP 在 PDO::rowCount() 中处理整个结果集,为所有结果分配内存检索到的结果。因此,COUNT() 在 MySQL 中更快。

第二个问题:COUNT(id) 与 COUNT(*) 与索引

COUNT() 是即使在 id 字段上设置了索引,也优于 COUNT(id)。这是因为 COUNT() 经过优化,可以快速计算值,从而减少获取每一行的需要,而 COUNT(id) 需要访问每一行,可能会降低性能。

以上是哪个性能更好:带索引或不带索引的 PDO::rowCount() 或 COUNT(*)?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn