我在内存数据库中使用了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