1 索引概述:
索引是对数据库表中一个或多个列(例如,employee 表的姓氏 (lname) 列)的值进行排序的结构。
例如这样一个查询:select * from table1 where id=10000。如果没有
索引,必须遍历整个表,直到ID等于10000的这一行被找到为止;有了索引之后(必须是在ID这一列上建立的索引),在索引中查找,但索引是经过某种算法优化过的,查找次数要少的多的多。可见,
索引是用来定位的。
索引分为
聚簇索引和
非聚簇索引两种,聚簇索引 是按照数据存放的物理位置为顺序的,而非聚簇索引就不一样了;聚簇索引能提高多行检索的速度,而非聚簇索引对于单行的检索很快。
2 索引优缺点:
建立
索引的目的是加快对表中记录的
查找或
排序。
为表设置
索引要付出代价的:一是增加了数据库的
存储空间,二是在插入和修改数据时要花费较多的时间(因为索引也要随之变动)。
(1)通过创建唯一性
索引,可以保证数据库表中每一行数据的唯一性。
(2)可以大大加快数据的检索速度,这也是创建
索引的最主要的原因。
(3)可以加速表和表之间的连接,特别是在实现数据的参考完整性方面特别有意义。
(4)在使用分组和排序子句进行数据检索时,同样可以显著减少查询中分组和排序的时间。
(5)通过使用
索引,可以在查询的过程中,使用优化隐藏器,提高系统的性能。
也许会有人要问:增加
索引有如此多的优点,为什么不对表中的每一个列创建一个
索引呢?因为,增加
索引也有许多不利的方面。
(1)创建
索引和维护
索引要耗费时间,这种时间随着数据量的增加而增加。