1、定义
索引
是对数据库表中一个或多个列(例如,employee 表的姓氏 (lname) 列)的值进行排序的结构。如果想按特定职员的姓来查找他或她,则与在表中搜索所有的行相比,索引有助于更快地获取信息。
2、索引的优点
第三,可以加速表和表之间的连接,特别是在实现数据的参考完整性方面特别有意义。
第四,在使用分组和排序子句进行数据检索时,同样可以显著减少查询中分组和排序的时间。
3、索引的缺点
4、创建索引的列:
第一、在经常需要搜索的列上,可以加快搜索的速度;
第一,对于那些在查询中很少使用或者参考的列不应该创建
索引
。这是因为,既然这些列很少使用到,因此有
索引
或者无索引,并不能提高查询速度。相反,由于增加了
索引
,反而降低了系统的维护速度和增大了空间需求。
第二,对于那些只有很少数据值的列也不应该增加
索引
。这是因为,由于这些列的取值很少,例如人事表的性别列,在查询的结果中,
结果集
的数据行占了表中数据行的很大比例,即需要在表中搜索的数据行的比例很大。增加
索引
,并不能明显加快检索速度。
第四,当修改性能远远大于检索性能时,不应该创建索引。这是因为,修改性能和检索性能是互相矛盾的。当增加
索引
时,会提高检索性能,但是会降低修改性能。当减少
索引
时,会提高修改性能,降低检索性能。因此,当修改操作远远多于检索操作时,不应该创建索引。
6、索引列
7、索引类型
唯一索引
唯一索引是不允许其中任何两行具有相同索引值的索引。
当现有数据中存在重复的键值时,大多数数据库不允许将新创建的
唯一索引
与表一起保存。数据库还可能防止添加将在表中创建重复键值的新数据。例如,如果在employee表中职员的姓(lname)上创建了
唯一索引
,则任何两个员工都不能同姓。
主键索引