计算确切编号的正确方法。 SQL 中使用 PHP PDO 的行数
Proper way to count the exact no. of rows in SQL using PHP PDO
我要数一数。我的 table 中的行数,我就是这样做的。如果我在性能方面有任何失误,请告诉我。
老办法
//I'm doing this to verify if the entered User name is correct.
$stmt = $conn->prepare("SELECT * FROM `users` WHERE `User` = ?");
$stmt->execute(array($user));
$Count = $stmt->rowCount();
echo $Count;
在某些网站上,我了解到 SELECT *
的使用存在一些性能问题,因此如果不需要所有列,则应避免使用
$stmt = $conn->prepare("SELECT `id` FROM `users` WHERE `User` = ?");
$stmt->execute(array($user));
$Count = $stmt->rowCount();
echo $Count;
我考虑过使用 MYSQL 函数 COUNT()
,但我不确定它是否会提高 table 几百万行和大约 8-9 列的性能。
$stmt = $conn->prepare("SELECT COUNT(`id`) FROM `users` WHERE `User` = ?");
$stmt->execute(array($user));
for($stmt as $row)
$Count = $row[0];
echo $Count;
我应该使用上面的哪一种,或者还有其他更好的方法吗?
使用 COUNT(*)
比获取所有行然后计数更有效。
所以你应该使用:
$stmt = $conn->prepare("SELECT COUNT(`id`) FROM `users` WHERE `User` = ?");
$stmt->execute(array($user));
$count = $stmt->fetchColumn();
echo $Count;
阅读更多关于 fetchColumn
我要数一数。我的 table 中的行数,我就是这样做的。如果我在性能方面有任何失误,请告诉我。
老办法
//I'm doing this to verify if the entered User name is correct.
$stmt = $conn->prepare("SELECT * FROM `users` WHERE `User` = ?");
$stmt->execute(array($user));
$Count = $stmt->rowCount();
echo $Count;
在某些网站上,我了解到 SELECT *
的使用存在一些性能问题,因此如果不需要所有列,则应避免使用
$stmt = $conn->prepare("SELECT `id` FROM `users` WHERE `User` = ?");
$stmt->execute(array($user));
$Count = $stmt->rowCount();
echo $Count;
我考虑过使用 MYSQL 函数 COUNT()
,但我不确定它是否会提高 table 几百万行和大约 8-9 列的性能。
$stmt = $conn->prepare("SELECT COUNT(`id`) FROM `users` WHERE `User` = ?");
$stmt->execute(array($user));
for($stmt as $row)
$Count = $row[0];
echo $Count;
我应该使用上面的哪一种,或者还有其他更好的方法吗?
使用 COUNT(*)
比获取所有行然后计数更有效。
所以你应该使用:
$stmt = $conn->prepare("SELECT COUNT(`id`) FROM `users` WHERE `User` = ?");
$stmt->execute(array($user));
$count = $stmt->fetchColumn();
echo $Count;
阅读更多关于 fetchColumn