两个数字字段上的SQlite索引?
我有一个表,我访问的2个整型字段的所有时间,所以想要一个索引来帮助。从来没有写过。int字段不是唯一的 什么是最理想的指标两个数字字段上的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
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