[英]How can I count entries in mySQL database faster?
我正在计算我的SQL数据库中的条目:
$sql = "SELECT * FROM files WHERE id = ?";
$q = $pdo->prepare($sql);
$q->execute([$id]);
$rowCount =$q->rowCount();
$rowCount
的结果为500000。但是要输出此单个数字需要5秒钟! 是否有可能更快地获得此结果?
使用COUNT()函数https://dev.mysql.com/doc/refman/8.0/en/counting-rows.html :
$sql = "SELECT COUNT(*) FROM files WHERE id = ?";
还要确保“ id”是索引列: https : //dev.mysql.com/doc/refman/8.0/en/mysql-indexes.html
SELECT * ...
,然后用PHP进行计数,需要将所有行的所有列都铲回PHP。 付出很大的努力却几乎没有收获。
SELECT COUNT(col) ...
由MySQL进行计数,但必须检查col
是否为NULL
。 它需要获取每一行的col
值。
SELECT COUNT(*) ...
以最有效的方式对行进行计数。 这涉及寻找“最小”索引(如果没有二级索引,则查找整个表),并对其进行计数。
您必须了解INDEXes
,才能进入数据库! 这只是它们的一个小用途。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.