首頁 > 資料庫 > mysql教程 > 'SQL_CALC_FOUND_ROWS 與 COUNT(*):哪種方法分頁更有效?”

'SQL_CALC_FOUND_ROWS 與 COUNT(*):哪種方法分頁更有效?”

Mary-Kate Olsen
發布: 2024-12-14 07:30:11
原創
127 人瀏覽過

`SQL_CALC_FOUND_ROWS vs. COUNT(*): Which Method is More Efficient for Pagination?`

SQL 效能:SELECT SQL_CALC_FOUND_ROWS 與SELECT COUNT(*)

考慮一個場景,您需要限制傳回目的的行數用於分頁目的的SQL 查詢。要確定記錄總數,主要有兩種方法:

方法 1:SQL_CALC_FOUND_ROWS

SELECT SQL_CALC_FOUND_ROWS * FROM table WHERE id > 100 LIMIT 10;
SELECT FOUND_ROWS();  
登入後複製

方法 2:SELECT COUNT(*)

SELECT * FROM table WHERE id > 100 LIMIT 10;
SELECT COUNT(*) FROM table WHERE id > 100;  
登入後複製

問題來了:哪個哪一種方法比較有效?

最佳方法:視情況而定

根據 MySQL 性能博客,沒有明確的答案。部落客 Peter Zaitsev 建議最佳方法取決於索引配置和其他因素。

一般共識

但是,許多評論針對博客文章似乎表明 SQL_CALC_FOUND_ROWS 通常比運行兩個查詢慢。報告的效能損失可能會很大,可能會慢 10 倍。

以上是'SQL_CALC_FOUND_ROWS 與 COUNT(*):哪種方法分頁更有效?”的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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