對不起,只是清除我的問題。擴展這一問題Optimizing sqlite query爲什麼第一個查詢比第二個查詢快?
我有一個表:
CREATE TABLE IF NOT EXISTS [app_status](
[id] INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL ,
[status] TEXT DEFAULT NULL,
[type] INTEGER
)
我有兩個指標。一個在status
上,另一個在type
上。哪個查詢運行得更快,爲什麼?
SELECT COALESCE(min(type), 0)
FROM app_status
WHERE status IS NOT NULL
AND type IN (1,2) limit 1
查詢計劃O/P
0|0|0|SEARCH TABLE app_status USING INDEX idx_type (mailbox_type=?) (~10 rows)
0|0|0|EXECUTE LIST SUBQUERY 1
或者......
SELECT type FROM
app_status WHERE
status IS NOT NULL
ORDER BY type limit 1
查詢計劃O/P
0|0|0|SCAN TABLE app_status USING INDEX idx_type (~500000 rows)
你生成執行計劃? – Randy 2012-02-28 17:29:43
@Randy我添加了查詢計劃o/p,但無法理解哪裏有太大差異bw /有兩個查詢計劃o/p – 2012-02-28 17:43:53
查詢可能不會返回相同的結果,這可能會解釋計劃中的差異 – Sparky 2012-02-28 17:49:50