Oracle 索引小记

索引概念

索引是数据库结构的一种,通过避免全表检索,提高针对数据库中的某列查询速度。建立索引时,oracle会首先对全表进行搜索,然后把要建立索引的字段排序,并构建构建索引条目,包含该字段值和该字段在原表中的地址值rowid,并把索引条目存储到索引段中。

类比:
小学的时候大家都学过如何查字典,以偏旁部首查询“廒”字举例;
我们先进入偏旁部首查“广”,找到对应的字后,到对应页码查看含义;
偏旁部首的使用就相当于索引,他可以加快我们的查询速度,但是也让字典变厚了。所以通过索引优化查询语句,就是用空间换取时间。

索引类型

B-tree(默认)和Bitmap;
其中Bitmap主要用于取值范围比较小的,如性别(male,female),衣服尺寸(S,M,L)等,而且在读取比较多的系统中使用较多。

注意事项

1.oracle创建主键时会自动在该列上创建索引,但表的主键都是唯一值,所以主键的索引对查询优化不大。
2.对常用列创建索引,尤其是查询限制条件或者关联查询,以及外键(where,join,foreign key)。
3.使用组合索引注意分析,把汇总后数量级从小到大排序,如商场中的货物和卖出时间组合时,货物在前;若是进货时间和购买人一起,就进货时间在前。思路就是,索引就是目录,目录一般都是从大面到细节,一级目录节点比二级目录要少。
4.对于比较小的表来说没有必要建立索引。
5.索引是用空间换时间来实现快速查询,因此insert、delete、update等操作多的业务表,谨慎考虑。

索引占用空间

select segment_name ,sum(bytes)/1024/1024 from user_segments where segment_type =‘INDEX’ group by segment_name;
Day day up!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值