我应该创建哪些列索引?

时间:2018-10-04 02:11:25

标签: sql sqlite

我正在使用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列创建索引。正确吗?

1 个答案:

答案 0 :(得分:3)

是的,这是查询的最佳索引。列abc可以按任何顺序排列,但是d必须跟在它们后面。