避免MySQL 的WHERE 子句中的子查詢:COUNT(*) 最佳化
在MySQL 中處理大型資料集時,效能優化至關重要。常見的情況是在 WHERE 子句中使用 COUNT(*),這可能會佔用大量資源。本文探討了在不訴諸子查詢的情況下提高查詢效率的替代解決方案。
問題:
您希望從計數所在的「gd」表中擷取不同的值每筆記錄超過 10。通常,這可以使用以下查詢來實現:
SELECT DISTINCT gid FROM `gd` WHERE COUNT(*) > 10 ORDER BY lastupdated DESC
但是,這種方法涉及 WHERE 子句中成本高昂的子查詢。
解:
不要使用子查詢,而是在GROUP BY 操作後利用HAVING 子句:
SELECT gid FROM `gd` GROUP BY gid HAVING COUNT(*) > 10 ORDER BY lastupdated DESC
說明:
以上是如何在沒有子查詢的情況下最佳化 MySQL 中的 COUNT(*) 查詢?的詳細內容。更多資訊請關注PHP中文網其他相關文章!