PDO::rowCount 與COUNT(*) 性能比較
問題:
在在有行計數檢查的SELECT 查詢中,哪個效能比較好:使用PDO::rowCount() 還是在查詢中包含COUNT(*)?另外,當在 id 欄位上設定索引時,哪個選項更有效?
答案:
第一個問題:Count(*) 與PDO ::rowCount()
在內部 ::rowCount()
在內部,MySQL 中的COUNT() 分配最小的記憶體來僅儲存計數結果,而PHP 在PDO::rowCount() 中處理整個結果集,為所有結果分配記憶體檢索到的結果。因此,COUNT() 在 MySQL 中更快。
第二個問題:COUNT(id) 與COUNT(*) 與索引
COUNT() 是即使在id 欄位上設定了索引,也優於COUNT(id)。這是因為 COUNT() 經過最佳化,可以快速計算值,從而減少獲取每一行的需要,而 COUNT(id) 需要存取每一行,可能會降低效能。以上是哪個效能比較好:帶有索引或不帶索引的 PDO::rowCount() 或 COUNT(*)?的詳細內容。更多資訊請關注PHP中文網其他相關文章!