【问题标题】:Which one is faster in MySQL? COUNT(id) or counting the result rows? [closed]MySQL 中哪一个更快? COUNT(id) 还是计算结果行? [关闭]
【发布时间】:2021-08-09 08:59:47
【问题描述】:

我需要计算 MySQL 中一个巨大表中的总行数。我正在用两种形式的 PHP 和 PDO 编写代码。请告诉我哪一个可以更快?使用 COUNT() 函数,还是计算返回的总行数?

方法一:

$sql = "SELECT id FROM tbl_users";
$q = $db->prepare($sql);
$q->execute(array());
$rows = $q->rowCount();

方法二:

$sql = "SELECT COUNT(id) as c FROM tbl_users";
$q = $db->prepare($sql);
$q->execute(array());
$result = $q->fetch();
$rows = $result['c'];  

提前谢谢你。

【问题讨论】:

  • 取决于COUNT(id) 值。如果它很大,那么您将失去发送到客户端阶段的输出行集。任何情况都必须经过测试。
  • @Akina 易于测试。我毫不怀疑在一张大桌子上的结果。在一张小桌子上,差异可能难以察觉。

标签: mysql select count mariadb


【解决方案1】:

获取所有行需要将整个表数据传输到客户端。这比让 mysql 计算行要贵得多。

【讨论】:

  • 此外,使用COUNT(*),而不是COUNT(id)
猜你喜欢
  • 1970-01-01
  • 2012-12-24
  • 2011-02-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多