某学校的学籍管理系统实现了对学生学籍信息的管理,其中学生表结构为:学生表(学号,姓名,性别,系号,是否有学籍),此表中除学号列有唯一索引外,其他列均无索引。 设学籍管理系统中经常执行如下形式的操作: SELECT*FROM学生表 WHE

admin2012-04-09  34

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

设学籍管理系统中经常执行如下形式的操作:
   SELECT*FROM学生表
   WHERE姓名=’张三’AND系号=’10’AND是否有学籍=’有’
   系统运行中发现这类操作的效率比较低,系统工程师建议:由于查询条件中使用了“系号”、“姓名”和“是否有学籍”三列,建议在这三个列上分别建立索引,以提高查询效率。   
请问其建议建立的三个索引是否都能提高查询效率?请简要说明原因。

选项

答案不能都提高查询效率,对于姓名和系号上建立索引能够提高查询效率,但是在是否有学籍属性列上由于只有两种取值,有或是没有,若在其上建立索引,则平均起来,每个属性值对应一半的元组,用索引检索,并不能明显加快检索的速度。

解析
转载请注明原文地址:https://kaotiyun.com/show/rUAZ777K
0

最新回复(0)