Stay hungry Stay foolish

Oracle索引、分区使用总结

Posted on By blue

目录



Oracle索引

建索引,经常干的一件事。

可是,B-Tree Index、Bitmap Index、Text Index 、unique index

他们适用的情况不一样,

对于新手来说,很容易犯迷糊,

出现的问题是,

建了索引,反而查询速度更慢了!

简单的总结下几个常用的索引,

unique index:唯一索引,当创建主键时,自动创建

B-Tree Index :Oracle默认索引,适应于OLAP系统键值重复率低的字段

Bitmap Index:占用空间比B树索引小,适用于OLAP系统中键值重复率高的字段,含有位图索引的字段,比较适合做count、or、and这样的逻辑运算,但不适合在OLTP中经常进行DML操作,位图索引频繁更新容易导致阻塞

Text Index:全文索引,适用于OLAP、语言类模糊查询,对字段内容进行检索可用全文索引

Oracle分区

何时需要分区?

当单单表超过2G,应考虑进行分区

分区的优点?

过期数据化处理、提高查询效率、单独使用索引、便于维护等

Range partition:范围分区,适用于数据过期化处理

Hash partition:哈希分区,适用于数据均匀分区、分区字段重复率低、哈希分区使每个分区的数据都比较均匀(哈希分区不能对分区进行DROP、SPLIT、MERGE)

List partition:列表分区,适用于数据重复率高的分区字段,方便进行列上的值和分区的映射

组合分区:Range-Hash、Range_List参考上述分区特点,根据实际需要创建