我想知道数据库如何在以下查询中利用foo
上的索引:
SELECT * FROM mytable WHERE foo > 10
在一个简单的等式查询中,例如:
SELECT * FROM mytable WHERE foo = 10
数据库只能使用值10
作为索引的关键字,因此很容易检查。但是在foo > 10
的情况下,您似乎无法再从索引中受益,它必须扫描所有记录。想知道他们实际上是如何工作的,因为它对我没有意义。
答案 0 :(得分:1)
如果你有一个索引,它通常被认为是一个有序列表,所以对于像>10
这样的情况,它可以直接跳到10
应该是的地方,并开始逐步完成下一个条目。 / p>
这也适用于范围条件,例如BETWEEN x AND y
,它可以采用索引的子集。