两个数字字段上的SQlite索引?

两个数字字段上的SQlite索引?,sqlite,indexing,Sqlite,Indexing,我有一个表,我访问的2个整型字段的所有时间,所以想要一个索引来帮助。从来没有写过。int字段不是唯一的 什么是最理想的指标 Table MyIntA MyIntB SomeTextValue 查询通常如下所示: Select SomeTextValue from MyTable where MyIntA=1 and MyIntB=3 MyIntA MyIntB 1 1 1 2 2 1 2 2 您可以在(MyIntA,MyInt

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

什么是最理想的指标

Table
  MyIntA
  MyIntB
  SomeTextValue
查询通常如下所示:

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

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

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

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

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

在这里,单独考虑时,
MyIntA
MyIntB
都不是唯一的,因此这两个列都不能单独用作主键。但是,这对
(MyIntA,MyIntB)
是唯一的,因此这对列可以用作主键。

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

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

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

Select  SomeTextValue from MyTable where MyIntA=1 and MyIntB=3
MyIntA  MyIntB
1       1
1       2
2       1
2       2
在这里,单独考虑时,
MyIntA
MyIntB
都不是唯一的,因此这两个列都不能单独用作主键。但是,这对
(MyIntA,MyIntB)
是唯一的,因此这对列可以用作主键。

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

这应该会有帮助,尽管对于不同的RDBMS来说,MyIntA和MyIntB列中数据的选择性(离散/不同值的数量)应该帮助您决定索引是(MyIntA,MyIntB),(MyIntB,MyIntA),还是仅仅(MyIntA)或(MyIntB)

这应该会有所帮助,尽管是针对不同的RDBMS