2个数字字段的SQlite索引?

时间:2010-12-20 08:46:11

标签: sqlite indexing

我有一个表,我一直访问2个int字段,所以想要一个索引来帮助。从来没有写过。 int字段不是唯一的。

什么是最佳指数?

Table
  MyIntA
  MyIntB
  SomeTextValue

查询总是如下所示:

Select  SomeTextValue from MyTable where MyIntA=1 and MyIntB=3

2 个答案:

答案 0 :(得分:3)

您可以在(MyIntA, MyIntB)上添加索引。

CREATE INDEX your_index_name ON MyTable (MyIntA, MyIntB);

注意:如果列对(当一起考虑时)仅包含不同的值且主要没有其他明显的选择时,最好将这对列作为主键键。

例如,如果您的表仅包含如下数据:

MyIntA  MyIntB
1       1
1       2
2       1
2       2

如果单独考虑MyIntAMyIntB唯一,那么这些列都不能单独用作主键。但是,(MyIntA, MyIntB) 唯一,因此这对列可以用作主键。

答案 1 :(得分:1)

MyIntA和MyIntB列中数据的选择性(离散/不同值的数量)应该可以帮助您确定您的索引应该是(MyIntA,MyIntB),(MyIntB,MyIntA)还是仅仅(MyIntA)或(MyIntB)

这个link应该有所帮助,尽管对于不同的RDBMS