我目前正在运行一个看起来如此的查询:
Select Name from Location Where Created > (long value of date)
and
Created < (long value of date) and LocationContainer = 'a string'
日期的长值意味着自Epoch以来的毫秒数,我们使用它来存储日期。
我有一个基于LocationContainer
构建的索引,按顺序创建。
我有一个返回130万行的查询,但运行大约需要40秒。是对的吗?这个查询不应该快得多吗?我查询的sinc ethe字段是否被编入索引?我错过了什么?
答案 0 :(得分:0)
您是否尝试更改where表达式的顺序?我绝不是专家,但我相信where子句中的表达式需要按照它们在复合索引中定义的顺序来指定列。因此,您的查询应该变为:
SELECT Name FROM Location
WHERE LocationContainer = 'a string'
AND Created > (long value of date)
AND Created < (long value of date)
基本上,如果你有一个由列A,B,C组成的复合索引。 where子句按顺序指定列A,B,C或A,B的查询将使用索引。