[英]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.