我无法理解这个问题的含义:
给定表SALARY
的属性EMPLOYEE
的非密集索引,是否可能
回答问题
SELECT COUNT(*) FROM EMPLOYEE WHERE SALARY < 10,000
没有执行文件的线性扫描?如果没有,您如何修改非密集索引以实现更高效的流程?
我理解查询的内容但我并不真正理解非密集索引的属性与执行查询有什么关系。既然员工不一定有薪水值,那么这意味着索引是非密集的?
如果是这样,我不知道如何允许我更改索引以提高查询效率。
答案 0 :(得分:3)
非密集索引具有:
密集索引有:
Salary上的非密集索引包含每个不同工资值的条目,但不包含每条记录。因此,索引不包含足以执行COUNT(*)的信息,而不会恢复为数据文件的线性扫描。
如果Salary的索引密集,那么你可以执行
SELECT COUNT(*) FROM EMPLOYEE WHERE SALARY < 10,000
没有文件的线性扫描。