我在內存數據庫中使用了DBD :: SQLite。我爲表格定義了以下索引:在SQLite3中,這個select語句會從兩個索引中獲益嗎?
CREATE INDEX x ON ss (a, b);
CREATE INDEX y ON ss (c, d, e, o);
以下select語句是否會使用這兩個索引?
SELECT f, g
FROM ss
WHERE a = ? AND b = ? AND c = ? AND d = ? AND e = ?
而且,我應該只對where子句中的那些列做索引?
我問這只是因爲我想運行最小INDEX更多選擇。
SELECT f, g FROM ss WHERE o = ?
SELECT f, g FROM ss WHERE a = ? AND b = ?
SELECT f, g FROM ss WHERE c = ? AND d = ? AND e = ?
SELECT f, g FROM ss WHERE c = ? AND d = ? AND o = ?
SELECT f, g FROM ss WHERE a = ? AND b = ? AND c = ? AND d = ? AND e = ?
對不起,你的鏈接無效(再更新?)。 – Juergen 2009-08-20 21:50:45
該鏈接是http://sqlite.org/lang_explain.html它似乎被一些逃脫魔術打破。 – wierob 2009-08-20 21:56:11
是的,真正的魔力;-)謝謝! – Juergen 2009-08-20 22:00:38