其他数据对象-----索引(10级学员 林常禹课堂笔记)

其他数据对象-----索引

什么是索引?

它是一种用于提升查询效率的数据库对象。

索引的分类

索引分为两种,分别为唯一性索引和非唯一性索引。

索引的优点

1.加快数据的检索速度;

2.创建唯一性索引,保证数据库表中每一行数据的唯一性;

3.能够加快表和表之间的连接。

索引的缺点

1.  索引需要占用物理空间

2.  当对表中的数据进行增加、删除和修改的时候,索引也要动态的 维护,降低了数据的维护速度。

创建索引的目的

1.  维护被索引列的唯一性

2.  提供快速访问表中数据的策略

创建索引需要注意的原则

1.  如果某一个表,对这张表的大部分操作是进行查询(select),那么建议在这个表中的指定列添加索引

2.  如果某一个表中的某一列,在where子句中频繁出现,那么建议在该列指定索引

3.  在选择性高的列上创建索引(索引选择性最高是1,如primary key)。

4.  表中的数据量比较大的(大于5M),建议为该表建立索引

使用索引的建议和注意

1.  查询结果是所有数据行的5%以下时,建议使用索引查询

2.  Where条件中经常使用到某个表的多列时,使用复合索引要比单列索引块

3.  在insert、update、delete操作较多的列中,不建议使用索引,因为更新表的同时,索引会同步更新,所以会影响执行效率

4.  Where子句中的字段,必须是复合索引的第一个字段

例:一个索引是按f1,f2,f3次序建立的,而where子句为f2=XXX,则因为f2不是索引的第一个字段而无法使用该索引

5.  当在where子句中使用某个索引的字段时,要尽可能将操作都移至等号右边

6.  一部分操作符会对oracle是否使用索引造成影响,以下操作会组织oracle使用索引:is null;date_col+0;char_col||’’;to_char;to_number,to_date等

如何创建一个索引

Create index 索引名 on 表名(列名1,[列名2,…]);

注:建立索引时,字段的顺序组合很重要,一般情况下,最常访问字段,放在最前面

索引的存储

索引和表是单独存在的,在为索引指定空间的时候,不要将索引的表和指向的表放入同一个空间,以免造成I/O冲突。

删除索引

Drop index 索引名;

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值