首頁 >資料庫 >mysql教程 >如何有效率地搜尋 MySQL 大表的最後 N 行中的某個數字?

如何有效率地搜尋 MySQL 大表的最後 N 行中的某個數字?

Barbara Streisand
Barbara Streisand原創
2024-11-20 03:19:01860瀏覽

How Can I Efficiently Search for a Number in the Last N Rows of a Large MySQL Table?

高效搜尋大型MySQL 表的最後N 行中的數字

在包含數百萬行的大型MySQL 表中,您可能會遇到需要確定如果最後n 行出現特定數字。為了有效地做到這一點,請考慮使用以下方法:

從@chaos 提出的概念開始,一些關鍵的修改增強了查詢的性能:

  • 明確ORDER BY for LIMIT: 始終與LIMIT 一起指定ORDER BY 以確保行的順序。依賴隱式排序可能會導致結果不一致且不可移植。
  • 降序:以降序排序,您無須事先知道表格中的總行數.
  • 衍生表的關聯名稱:為派生表分配一個關聯名稱(表別名)將其與原始表區分開。

進行這些修改後,優化後的查詢將變為:

SELECT `id`
FROM (
    SELECT `id`, `val`
    FROM `big_table`
    ORDER BY `id` DESC
    LIMIT $n
) AS t
WHERE t.`val` = $certain_number;

此查詢有效地搜尋最後$ 中$certain_number 的出現n行big_table,為您的資料檢索需求提供快速可靠的解決方案。

以上是如何有效率地搜尋 MySQL 大表的最後 N 行中的某個數字?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn