【发布时间】:2018-06-07 09:12:29
【问题描述】:
我想计算确切的数字。我的表中的行数,这就是我正在做的事情。如果我在性能方面犯了任何错误,请告诉我。
老办法
//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(),但我不确定它是否会提高几百万行和大约 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;
我应该使用以上哪一种,或者还有其他更好的方法吗?
【问题讨论】:
-
@NigelRen - 是的,是重复的,但问答中充斥着错误陈述,很难找出真相。
标签: php mysql performance pdo query-performance