索引名 oracle,ORACLE 索引名称矫情

b1db9b492cc0f71a802dea738ef2a02c.gif

oracle 索引英文名称很多,翻译过来的话也很多中文名称,不过总得来说词不达意。也就是说讲中文的时候,对方无法理解你说的是啥意思,啥情况,啥原理。

比如前缀,非前缀。本地和全局,普通和分区。B树和位图,组合和单独。

然后这些不同的组合 比如说 本地前缀,本地非前缀。全局前缀,前缀和组合

索引先按结构来分: 有位图索引和B树索引,以及其他类型。

索引按字段来分:    有组合索引和单独索引。

索引按存储类型分:有分区索引和普通索引。

索引按分区键来分:有本地索引和全局索引。

索引按分区键与表分区键关系分: 前缀和非前缀。

一般有人认为全局索引也包含了普通索引,或许是吧!可本人认为最好不是,这有利于理解和沟通。

1 结构

create bitmap index ix_bm_sex on table ();

位图索引由于只存储键值的起止Rowid和位图

而树形索引存储分支节点,叶节点,键值还有双向指针。

2 字段  有两个以上的字段组合成索引 相反 就是单独索引

create  index ix_bm_x on table (id,name);

create  index ix_bm_y on table (id);

3 存储: 一般普通索引就是-个段,而分区索引是有多个段组成,

4 分区键: 全局索引表示其索引分区是按另外个字段来分区的。而本地索引是安表分区键的字段

分区表 按 ORD_DATE 日期进行范围分区

create table orders (

order_no      number,

part_no       varchar2(40),

ord_date      date

)partition by range (ord_date);

本地索引

create index orders_local_1_idx on orders(order_no) local;

而全局索引:

create index orders_global_2_idxon orders(part_no)   global partition by range(part_no)

两者区别在于关键字 global partition

5 前缀

nonprefixed index  先看下实例脚本

create index ind_local_prfixed on TEST_P(ord_date,part_no) local nologging;

create index ind_local_nonprfixed on TEST_P (part_no) local nologging;

第一个是本地前缀索引,第二个是本地非前缀索引。前缀应该理解为分区键在索引的第一位。

然全局索引只能做前缀索引,也就是索引分区字段必须在索引字段第一位。

其实它跟组合索引差不多,要考虑查询条件那个字段利用率高,把高的放在前面,有利于提高索引效率和索引命中率。

另外还有反键索引和压缩索引,还有个跟本地索引的同义词叫局部索引。

global index 和 local index 对应不同的中文名称 呵呵可把人给搞晕了。

global index 应该叫自定义分区键索引,local index 表分区键索引 才够味!

34755b95facc3252d9f009fb2d56a870.png

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值