如何透過偏移和限制最佳化來統計 MySQL 中的總查詢結果?

DDD
發布: 2024-10-23 13:08:30
原創
525 人瀏覽過

How to Count Total Query Results in MySQL with Offset and Limit Optimization?

在MySQL 中取得總查詢結果(帶偏移量和限制)

在分頁場景中,確定一個結果中的總結果數至關重要MySQL 查詢計算所需的總頁數。一種方法涉及執行查詢兩次,一次有檢索分頁結果的限制,另一次沒有限制計算總行數。但是,這種方法可能效率較低。

輸入 SQL_CALC_FOUND_ROWS:更最佳化的解決方案是在初始查詢中使用 SQL_CALC_FOUND_ROWS 修飾符。透過包含此修飾符,MySQL 在應用限制之前計算匹配行的總數。然後,您可以執行 SELECT FOUND_ROWS() 語句來擷取總計數。

用法:

要使用SQL_CALC_FOUND_ROWS,只需將其新增至查詢的開頭:

<code class="sql">SELECT SQL_CALC_FOUND_ROWS ...</code>
登入後複製

執行查詢後,執行下列指令來擷取總行數:

<code class="sql">SELECT FOUND_ROWS();</code>
登入後複製
登入後複製

範例:

比方說您有這樣的查詢:

<code class="sql">SELECT * FROM `directory`
WHERE `category_id` = 12
ORDER BY `name` ASC
LIMIT 10 OFFSET 20;</code>
登入後複製

要計算結果總數,您將執行以下附加查詢:

<code class="sql">SELECT FOUND_ROWS();</code>
登入後複製
登入後複製

這將傳回category_id等於12的目錄表,可以讓你有效率的決定分頁所需的總頁數。

以上是如何透過偏移和限制最佳化來統計 MySQL 中的總查詢結果?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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