某学校的学籍管理系统实现了对学生学籍信息的管理,其中学生表结构为:学生表(学号, 姓名, 性别,

18 查阅

某学校的学籍管理系统实现了对学生学籍信息的管理,其中学生表结构为:学生表(学号, 姓名, 性别, 系号, 是否有学籍),此表中除学号列有唯一索引外,其它列均无索引。

设学籍管理系统中经常执行如下形式的操作:

SELECT*FROM学生表

WHERE姓名='张三' AND 系号='10' AND 是否有学籍='有'

系统运行中发现这类操作的效率比较低,系统工程师建议:由于查询条件中使用了“系号”、“姓名”和“是否有学籍”三列,建议在这三个列上分别建立索引,以提高查询效率。

请问其建议建立的三个索引是否都能提高查询效率?请简要说明原因。

参考答案:

不能。使用索引是需要付出代价的增加了系统维护时间和占用了系统时间。学籍、系号这两个字段重复值比较多因此在这两个字段上添加索引不会显著的增加查询速度减少用户的响应时间。相反因为需要占用空间反而会降低数据库的整体性能。不能。使用索引是需要付出代价的,增加了系统维护时间和占用了系统时间。学籍、系号这两个字段重复值比较多,因此在这两个字段上添加索引不会显著的增加查询速度,减少用户的响应时间。相反,因为需要占用空间,反而会降低数据库的整体性能。

计算机四级