oracle数据库索引种类,分别什么情况下使用
关于索引有些地方我不太明白1.oracle常用的都有哪几种索引,比如唯一索引之类的,sql语句都是怎么写?2.都在什么情况下适合用?3.最正常的语句createindex...
关于索引有些地方我不太明白1.oracle常用的都有哪几种索引,比如唯一索引之类的,sql语句都是怎么写?2.都在什么情况下适合用?3.最正常的语句create index name on.......建出来的是那种索引啊?4.表中主键和外键是不是自动给分配索引,自己就不用建了呢?谢谢
展开
3个回答
展开全部
1. b-tree索引
Oracle数据库中最常见的索引类型是b-tree索引,也就是B-树索引,以其同名的计算科学结构命名。CREATE
INDEX语句时,默认就是在创建b-tree索引。没有特别规定可用于任何情况。
2. 位图索引(bitmap index)
位图索引特定于该列只有几个枚举值的情况,比如性别字段,标示字段比如只有0和1的情况。
3. 基于函数的索引
比如经常对某个字段做查询的时候是带函数操作的,那么此时建一个函数索引就有价值了。
4. 分区索引和全局索引
这2个是用于分区表的时候。前者是分区内索引,后者是全表索引
5. 反向索引(REVERSE)
这个索引不常见,但是特定情况特别有效,比如一个varchar(5)位字段(员工编号)含值
(10001,10002,10033,10005,10016..)
这种情况默认索引分布过于密集,不能利用好服务器的并行
但是反向之后10001,20001,33001,50001,61001就有了一个很好的分布,能高效的利用好并行运算。
6.HASH索引
HASH索引可能是访问数据库中数据的最快方法,但它也有自身的缺点。集群键上不同值的数目必须在创建HASH集群之前就要知道。需要在创建HASH集群的时候指定这个值。使用HASH索引必须要使用HASH集群。
Oracle数据库中最常见的索引类型是b-tree索引,也就是B-树索引,以其同名的计算科学结构命名。CREATE
INDEX语句时,默认就是在创建b-tree索引。没有特别规定可用于任何情况。
2. 位图索引(bitmap index)
位图索引特定于该列只有几个枚举值的情况,比如性别字段,标示字段比如只有0和1的情况。
3. 基于函数的索引
比如经常对某个字段做查询的时候是带函数操作的,那么此时建一个函数索引就有价值了。
4. 分区索引和全局索引
这2个是用于分区表的时候。前者是分区内索引,后者是全表索引
5. 反向索引(REVERSE)
这个索引不常见,但是特定情况特别有效,比如一个varchar(5)位字段(员工编号)含值
(10001,10002,10033,10005,10016..)
这种情况默认索引分布过于密集,不能利用好服务器的并行
但是反向之后10001,20001,33001,50001,61001就有了一个很好的分布,能高效的利用好并行运算。
6.HASH索引
HASH索引可能是访问数据库中数据的最快方法,但它也有自身的缺点。集群键上不同值的数目必须在创建HASH集群之前就要知道。需要在创建HASH集群的时候指定这个值。使用HASH索引必须要使用HASH集群。
展开全部
Oracle数据库常见的索引种类有:B树索引、位图索引、反向键索引、基于函数的索引、
B树索引:如果表包含的数据非常多,并且经常在WHERE子句中引用某列或某几列,则应该基于该列或这几个列建立B树索引;
位图索引:当列的基数很低的时,当一个列的基数小于1%时,适用于位图索引;
反向索引:如果用户使用序列在表中输入记录,则反向键索引首先指向每个列键值的字节,然后在反向后的新数据上进行索引;但进行反向键索引时却是非递增的,这意味如果将其添加到子叶节点,可能会在任意的子叶节点中进行。
基于函数的索引:当数据库中遇到对字符大小写很敏感,如果用户不能确定输入数据的格式,甚至会产生一个严重的错误;这时候创建基于函数的索引就比较合适了;
B树索引:如果表包含的数据非常多,并且经常在WHERE子句中引用某列或某几列,则应该基于该列或这几个列建立B树索引;
位图索引:当列的基数很低的时,当一个列的基数小于1%时,适用于位图索引;
反向索引:如果用户使用序列在表中输入记录,则反向键索引首先指向每个列键值的字节,然后在反向后的新数据上进行索引;但进行反向键索引时却是非递增的,这意味如果将其添加到子叶节点,可能会在任意的子叶节点中进行。
基于函数的索引:当数据库中遇到对字符大小写很敏感,如果用户不能确定输入数据的格式,甚至会产生一个严重的错误;这时候创建基于函数的索引就比较合适了;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
问题太多了吧?
逻辑上:
Single column 单列索引
Concatenated 多列索引
Unique 唯一索引
NonUnique 非唯一索引
Function-based函数索引
Domain 域索引
物理上:
Partitioned 分区索引
NonPartitioned 非分区索引
B-tree:
Normal 正常型B树
Rever Key 反转型B树
Bitmap 位图索引
create index name on:就是普通的 非唯一索引 或 函数索引
主键会给分配索引,外键不会自动分配索引,需要自己创建
逻辑上:
Single column 单列索引
Concatenated 多列索引
Unique 唯一索引
NonUnique 非唯一索引
Function-based函数索引
Domain 域索引
物理上:
Partitioned 分区索引
NonPartitioned 非分区索引
B-tree:
Normal 正常型B树
Rever Key 反转型B树
Bitmap 位图索引
create index name on:就是普通的 非唯一索引 或 函数索引
主键会给分配索引,外键不会自动分配索引,需要自己创建
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询