数据库索引如何处理范围查询> =,< =等

时间:2018-03-27 18:09:55

标签: database

我想知道数据库如何在以下查询中利用foo上的索引:

SELECT * FROM mytable WHERE foo > 10

在一个简单的等式查询中,例如:

SELECT * FROM mytable WHERE foo = 10

数据库只能使用值10作为索引的关键字,因此很容易检查。但是在foo > 10的情况下,您似乎无法再从索引中受益,它必须扫描所有记录。想知道他们实际上是如何工作的,因为它对我没有意义。

1 个答案:

答案 0 :(得分:1)

如果你有一个索引,它通常被认为是一个有序列表,所以对于像>10这样的情况,它可以直接跳到10应该是的地方,并开始逐步完成下一个条目。 / p>

这也适用于范围条件,例如BETWEEN x AND y,它可以采用索引的子集。