数据库查询非密集索引

问题描述

| 我无法理解这个问题在问什么: 给定表
EMPLOYEE
属性
SALARY
的非密集索引,是否可能 回答查询
SELECT COUNT(*) FROM EMPLOYEE WHERE SALARY < 10,000
不执行文件的线性扫描?如果不是,您如何修改非密集索引以使过程更有效? 我了解查询内容,但我并不真正了解与执行查询相关的非密集索引的属性。由于存在员工不一定具有的薪水值,那么这意味着该指数是非密集的吗? 如果是这样,我看不到如何更改索引以提高查询效率。     

解决方法

非密集索引具有: 每个块一个条目 每个不同的值都有一个条目 密集索引具有: 每个记录的索引中只有一个条目 薪水的非密集索引包含每个不同薪水值的条目,但不包含每个记录的条目。因此,索引不包含足够的信息来执行COUNT(*),而又不返回到数据文件的线性扫描。 如果薪水指数很高,那么您可以执行
SELECT COUNT(*) FROM EMPLOYEE WHERE SALARY < 10,000
无需线性扫描文件。     

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...