我正在使用SQLite3。我有一个表MyTable,如下所示:
Create table mytable (a as INTEGER, b as INTEGER, c as INTGER, c as INTEGER);
Insert into mytable (a,b,c,d) values (1, 1,1,1);
Insert into mytable (a,b,c,d) values (1, 2,1,2);
Insert into mytable (a,b,c,d) values (2, 1,1,3);
Insert into mytable (a,b,c,d) values (2, 3,2,1);
Insert into mytable (a,b,c,d) values (3, 1,2,3);
添加数据后,我需要经常执行以下查询:
Select * from mytable where (a = ##) and (b = ##) and (c = ##) and (d < ##);
在这种情况下,执行查询之前应使用哪些列创建索引?
我正在考虑使用
Create Index MyIndex on mytable (a, b, c, d);
也就是说,为所有a,b,c,d列创建索引。正确吗?
答案 0 :(得分:3)
是的,这是查询的最佳索引。列a
,b
和c
可以按任何顺序排列,但是d
必须跟在它们后面。