MySQL中哪个更快?COUNT(id)还是计算结果行?
我需要计算 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'];
先感谢您。
回答
获取所有行需要将整个表数据传输到客户端。这比让 mysql 计算行更昂贵。