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

Database 数据库索引如何处理范围查询>;=<;=等,database,Database,我想知道数据库如何在以下查询中利用sayfoo上的索引: SELECT * FROM mytable WHERE foo > 10 在这样的简单相等查询中: SELECT * FROM mytable WHERE foo = 10 数据库可以使用值10作为索引的键,因此很容易检查。但是在foo>10的情况下,似乎您将无法再从索引中获益,它将不得不扫描所有记录。想知道它们到底是如何工作的,因为这对我来说没有意义。如果你有一个索引,它通常被认为是一个有序的列表,因此对于像>10这样的情况,

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

SELECT * FROM mytable WHERE foo > 10
在这样的简单相等查询中:

SELECT * FROM mytable WHERE foo = 10

数据库可以使用值
10
作为索引的键,因此很容易检查。但是在
foo>10
的情况下,似乎您将无法再从索引中获益,它将不得不扫描所有记录。想知道它们到底是如何工作的,因为这对我来说没有意义。

如果你有一个索引,它通常被认为是一个有序的列表,因此对于像
>10
这样的情况,它可以直接跳到
10
应该在的位置,然后开始逐步查看下一个条目

这也适用于范围条件,如x和y之间的
,其中它可以获取索引的子集