首頁 > 資料庫 > mysql教程 > SQL 行計數最佳化:「SELECT SQL_CALC_FOUND_ROWS」與「SELECT COUNT(*)」-哪個比較快?

SQL 行計數最佳化:「SELECT SQL_CALC_FOUND_ROWS」與「SELECT COUNT(*)」-哪個比較快?

Mary-Kate Olsen
發布: 2024-12-22 02:33:17
原創
331 人瀏覽過

SQL Row Count Optimization: `SELECT SQL_CALC_FOUND_ROWS` vs. `SELECT COUNT(*)` – Which is Faster?

SQL 效能最佳化:比較「SELECT SQL_CALC_FOUND_ROWS...」和「SELECT COUNT(*)」的行數

在SQL 資料庫中最佳化時,確定表中的記錄總數對於分頁和其他操作至關重要。此任務的兩種常用方法是「SELECT SQL_CALC_FOUND_ROWS...」和「SELECT COUNT(*)」。

方法 1:「SELECT SQL_CALC_FOUND_ROWS...」

此方法在初始 SELECT 查詢中使用「SQL_CALC_FOUND_ROWS」選項來準備傳回總行 數數。初步查詢後,您可以使用「SELECT FOUND_ROWS()」檢索總計數。

方法 2:「SELECT COUNT(*)」

或者,您可以使用「SELECT COUNT(*)」執行單獨的查詢來直接計算表。

效能比較

決定行數的最佳方法取決於特定因素。根據 MySQL 效能博客,「SQL_CALC_FOUND_ROWS」的效率會因索引和其他配置設定而異。

專家的觀察

Peter Zaitsev,作者MySQL 效能部落格表明,在大多數情況下,「SQL_CALC_FOUND_ROWS」通常比執行兩個單獨的查詢慢。部落格文章中的許多評論者也指出,「SQL_CALC_FOUND_ROWS」可能會明顯變慢,甚至慢 10 倍。

結論

而「SELECT SQL_CALC_FOUND_ROWS... " 在某些情況下可能是有益的,通常建議對效能關鍵型應用程式使用"SELECT COUNT( *)"其中最小化執行時間至關重要。但是,始終建議使用您的特定資料和配置測試這兩種方法,以確定適合您的用例的最佳方法。

以上是SQL 行計數最佳化:「SELECT SQL_CALC_FOUND_ROWS」與「SELECT COUNT(*)」-哪個比較快?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板