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

Barbara Streisand
發布: 2024-10-24 07:14:02
原創
352 人瀏覽過

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

來源:php
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!