3

在我的脚本中,我有大约 15 个 SQL 查询,仅用于计算行数并将它们显示给用户。

最有效的方法是什么?

我应该使用:

$stmt=$cxn->prepare("SELECT id FROM items WHERE seller=?");
$stmt->execute(array($username));
echo $stmt->rowCount();

或这个:

$stmt=$cxn->prepare("SELECT count(*) as count FROM items WHERE seller=?");
$stmt->execute(array($username));   
while($row=$stmt->fetch(PDO::FETCH_ASSOC))
    echo $row['count'];

提前致谢。

4

3 回答 3

2

简短的回答是 Count(*) 会更快。

但是,假设您不使用数据,如果您要选择数据并且想要计数,则使用第一种方法。

("SELECT id FROM items WHERE seller=?");

如果您在表上有一个索引,那么它几乎会立即返回。

于 2012-05-20T15:00:03.477 回答
1

rowCount 命令不仅可以用于 SELECT 查询,还可以用于 UPDATE、INSERT 等。所以这是一个好处。

但是根据 PDO 文档:

不能保证适用于所有数据库,并且不应依赖于可移植应用程序。

因此,在您的情况下,我建议使用 count 而不必担心性能,尽管它会稍微快一些。

于 2012-05-20T15:01:16.673 回答
0

使用 MySQL 行数会更快。PHP 和数据库之间需要更少的带宽。

于 2012-05-20T14:59:48.513 回答