Sqlite

最小/最大性能與sqlite中的限制順序?

  • May 5, 2019

我知道在一個查詢中組合最小值/最大值並不高效。(例如,參見https://stackoverflow.com/questions/11515165/sqlite3-select-min-max-together-is-much-slower-than-select-them-separately)。我也知道對於 SQL,推薦的方法是使用 min/max。(請參閱https://stackoverflow.com/questions/426731/min-max-vs-order-by-and-limit)但是,這些函式如何分別與 sqlite 中的排序和限制進行比較?

需要明確的是,這些是有問題的查詢:

SELECT MIN(column)
FROM table;

SELECT column
FROM table
ORDER BY column
LIMIT 1;

當有索引時,兩個查詢都只從索引中獲取第一個條目。

當沒有索引時,MIN() 只通過表一次,並且 ORDER BY 僅排序 LIMIT 所需的數量,最終結果相同。(舊版本的 SQLite 確實對所有內容進行了排序。)

引用自:https://dba.stackexchange.com/questions/152057