Oracle 联合索引
来源:互联网 发布:淘宝卖家客服怎么分流 编辑:程序博客网 时间:2024/06/05 06:02
我现在用的是oracle 9i
1.一个表建立多少个索引比较合适?比如说不大于5个
这个没有定论,楼主要综合查询效率和dml效率自己确定,索引可以加快select的查询速度,但也会降低delete,insert和update等dml语句的执行速度。
2.联合索引比单索引的效率高么?
如果联合索引中的多个字段都在where谓词中出现了,则联合索引效率比单列索引高,因为通过多个条件可以从索引中过滤得到更少的记录条数,也就减少了需要回表扫描的次数,甚至可以直接在联合索引中得到所查的所有结果,则不再需要回表。
但是由于多列的联合索引肯定要比单列索引大,也就是说同样的索引需要存储的物理块要多于单列索引,所以,如果查询中只出现了联合索引中的某一列,则其效率不如单列索引。
3.compress 这个压缩 ,能起到什么作用?
没研究过
4.上网上查资料时,都说oracle使用联合索引需要前导列,这个和版本有关系吗?
前导列跟版本没有关系。
前导列的概念是这样的,如果建立了f1,f2上的联合索引,则在查询时必须要用到f1,也就是所谓的前导列,该索引才会有效,因为索引是按照前导列排序的,如果where条件谓词中没有前导列,则需要执行索引扫描才能得到想要的结果,这种情况下其效率往往较差。
5.如果不需要前导列的话,reverse 这个反转 又起到什么作用呢?
鉴于前面描述的前导列的概念,我们考虑如下表存储table(f1,f2);
aa 1
ab 2
ac 3
ad 4
ae 5
如果我们对表table建立f1上的普通索引,由于按照f1进行排序,所以针对where f1=ad则需要遍历所有的a开始的索引,而如果对f1建立reverse索引,则由于da只有一个,则可以更快的得到需要的结果。
1.一个表建立多少个索引比较合适?比如说不大于5个
这个没有定论,楼主要综合查询效率和dml效率自己确定,索引可以加快select的查询速度,但也会降低delete,insert和update等dml语句的执行速度。
2.联合索引比单索引的效率高么?
如果联合索引中的多个字段都在where谓词中出现了,则联合索引效率比单列索引高,因为通过多个条件可以从索引中过滤得到更少的记录条数,也就减少了需要回表扫描的次数,甚至可以直接在联合索引中得到所查的所有结果,则不再需要回表。
但是由于多列的联合索引肯定要比单列索引大,也就是说同样的索引需要存储的物理块要多于单列索引,所以,如果查询中只出现了联合索引中的某一列,则其效率不如单列索引。
3.compress 这个压缩 ,能起到什么作用?
没研究过
4.上网上查资料时,都说oracle使用联合索引需要前导列,这个和版本有关系吗?
前导列跟版本没有关系。
前导列的概念是这样的,如果建立了f1,f2上的联合索引,则在查询时必须要用到f1,也就是所谓的前导列,该索引才会有效,因为索引是按照前导列排序的,如果where条件谓词中没有前导列,则需要执行索引扫描才能得到想要的结果,这种情况下其效率往往较差。
5.如果不需要前导列的话,reverse 这个反转 又起到什么作用呢?
鉴于前面描述的前导列的概念,我们考虑如下表存储table(f1,f2);
aa 1
ab 2
ac 3
ad 4
ae 5
如果我们对表table建立f1上的普通索引,由于按照f1进行排序,所以针对where f1=ad则需要遍历所有的a开始的索引,而如果对f1建立reverse索引,则由于da只有一个,则可以更快的得到需要的结果。
- Oracle 联合索引
- oracle 联合索引使用问题
- 联合索引
- 联合索引
- 联合索引
- 数据库索引,联合索引
- oracle 联合索引的疑问-与单列查询的关系
- mysql 复合索引,联合索引
- 数据库索引:联合索引基本知识
- 联合索引、聚簇索引
- 【索引】联合索引的执行
- 联合索引创建规则
- mysql 联合索引
- 关于联合索引
- mysql 联合索引详解
- mysql 联合索引温故
- mysql联合索引详解
- mysql联合索引详解
- PC端语音识别简介
- ThinkPHP常量
- ThinkPHP的数据库查询
- 杨辉三角
- autotools生成Makefile(一)
- Oracle 联合索引
- NS2的安装方法
- UNIX网络编程编译环境配置方法
- C++至今不可替代
- 去除输入字符串中的多余空格
- 函数约定调用
- 内核中如何实现周期性的任务执行
- Delphi对Windows通知栏图标编程示例
- Cocos2d-x学习(二十一):cocos2d-x引擎结构