使用分頁(「LIMIT」子句)執行複雜的MySQL 查詢時,取得總行數可能具有挑戰性。執行查詢兩次,其中一次沒有總計數的 LIMIT 子句,效率可能會很低。
幸運的是,MySQL 引入了 SQL_CALC_FOUND_ROWS 選項,它允許您在仍使用 LIMIT 子句的同時計算總行數。其工作原理如下:
範例查詢:
<code class="sql">-- Main query with SQL_CALC_FOUND_ROWS SELECT SQL_CALC_FOUND_ROWS name, email FROM users WHERE name LIKE 'a%' LIMIT 10; -- Second query to get row count SELECT FOUND_ROWS();</code>
限制與替代方案:
雖然SQL_CAL2_CAL的解決方案,但請注意,它的用法在MySQL 8.0.17 中已棄用。在大多數情況下,執行查詢兩次仍然更快。
作為替代方案,MySQL 8.0 引入了以下用於獲取行數的最佳化選項:
透過利用這些技術,開發人員可以有效地檢索分頁 MySQL 查詢中的總行數,而不會影響速度或效能。
以上是如何使用 SQL_CALC_FOUND_ROWS 高效取得分頁 MySQL 查詢中的行數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!