Sqlite
最小/最大性能與sqlite中的限制順序?
我知道在一個查詢中組合最小值/最大值並不高效。(例如,參見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 確實對所有內容進行了排序。)