0
自定義排序假設我有一個這樣的模式:指標與源碼
CREATE TABLE abc(
id INTEGER PRIMARY KEY AUTOINCREMENT,
txt TEXT
);
CREATE INDEX "txtCS" ON "abc"("txt" COLLATE MY_CUSTOM_SORT);
時將使用的SQLite我的索引上txt
?
,因爲我跑:(它不會搜索像我預期)
EXPLAIN QUERY PLAN SELECT * FROM abc ORDER BY txt COLLATE MY_CUSTOM_SORT DESC ...
,它告訴我,它掃描表,兩次,使用txtCS
指數
MY_CUSTOM_SORT
是我的自己的排序功能,我迷上了sqliteCreateCollation
。我只需要那些涉及特殊排序的查詢的索引,我希望它們更快
我得到一個單獨的條目'SCAN TABLE abc using COVERING INDEX txtCS',這非常好。那是什麼?......?哪個SQLite版本? –
這就是我得到的。但爲什麼它是掃描而不是搜索? – thelolcat
我假設,爲了使用自定義SQL索引,MY_CUSTOM_SORT函數應該顯式聲明爲SQLITE_DETERMINISTIC - 請參閱[表達式,限制條件索引](https://www.sqlite.org/expridx.html)以獲取詳細信息 –