标签:
索引,使用索引可快速访问数据库表中的特定信息。索引是对数据库表中一列或多列的值进行排序的一种结构。索引是一种与表有关的数据库结构,它可以使对应于表的SQL语句执行得更快。索引的作用相当于图书的目录,可以根据目录中的页码快速找到所需的内容。当表中有大量记录时,若要对表进行查询,第一种搜索信息方式是全表搜索,是将所有记录一一取出,和查询条件进行一一对比,然后返回满足条件的记录,这样做会消耗大量数据库系统时间,并造成大量磁盘I/O操作;第二种就是在表中建立索引,然后在索引中找到符合查询条件的索引值,最后通过保存在索引中的ROWID(相当于页码)快速找到表中对应的记录。
在数据库系统中建立索引主要有以下作用:
1)快速取数据;
2)保证数据记录的唯一性;
3)实现表与表之间的参照完整性;
4)在使用ORDER by、group by子句进行数据检索时,利用索引可以减少排序和分组的时间
创建oracle有效索引准则:
1、如果需要访问的数据不超过4%或5%,则可以使用索引。访问表中的行数据的另一种方法是从头到尾的顺序读取整个表,这称为全表扫描。全表扫描适用于请求的数据占全表数据百分比较高的查询。
2、相对较小的表应避免使用索引;
3、为所有表创建主键。在指定一列作为主键时,oracle自动创建该列索引;
4、对在where字句中频繁使用的列建立主键;
5、对包括在orader by 和group by 操作的列或涉及排序的union和distinct等其他操作中的列建立索引。由于索引已经被排序,因此执行前述操作的排序要求将显著减少;
6、只对有高选择性的表建立索引。既选择对几乎没有相同值得表建立索引
7、被频繁更改的列由于涉及开销问题,理论上不索引
标签:
原文地址:http://www.cnblogs.com/shuihuaboke/p/4721592.html