首頁  >  文章  >  資料庫  >  哪個效能比較好:帶有索引或不帶索引的 PDO::rowCount() 或 COUNT(*)?

哪個效能比較好:帶有索引或不帶索引的 PDO::rowCount() 或 COUNT(*)?

Barbara Streisand
Barbara Streisand原創
2024-10-24 07:14:02353瀏覽

Which is More Performant: PDO::rowCount() or COUNT(*) With or Without an Index?

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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn