Database 基于非稠密索引的数据库查询

Database 基于非稠密索引的数据库查询,database,indexing,Database,Indexing,我很难理解这个问题的含义: 如果表EMPLOYEE的属性SALARY上有一个非密集索引,是否可能 回答问题 SELECT COUNT(*) FROM EMPLOYEE WHERE SALARY < 10,000 从工资

我很难理解这个问题的含义:

如果表
EMPLOYEE
的属性
SALARY
上有一个非密集索引,是否可能 回答问题

SELECT COUNT(*) FROM EMPLOYEE WHERE SALARY < 10,000
从工资<10000的员工中选择计数(*)
不执行文件的线性扫描?如果没有,您如何修改非密集索引以实现更高效的流程

我了解查询要查找的内容,但我并不真正了解与执行查询相关的非密集索引的属性。既然有员工不一定拥有的工资值,那就意味着该指数是非稠密的


如果是这样,我看不出如何允许我更改索引以提高查询效率。

非密集索引具有:

  • 每个街区一个入口
  • 每个不同的值对应一个条目
密集索引包括:

  • 每个记录在索引中有一个条目
薪资的非密集索引包含每个不同薪资值的条目,但不包含每个记录。因此,索引没有包含足够的信息来执行计数(*),而不会恢复到数据文件的线性扫描

如果工资指数很高,那么你就可以表现出色

SELECT COUNT(*) FROM EMPLOYEE WHERE SALARY < 10,000
从工资<10000的员工中选择计数(*)
没有对文件进行线性扫描