Oracle联合索引

Oracle联合索引Oracle联合索引分类:Oracle2012-12-0809:352110人阅读评论(0)收藏举报我现在用的是oracle9i1.一个表建立多少个索引比较合适?比如说不大于5个这个没有定论,楼主要综合查询效率和dml效率自己确定,索引可以加快select的查询速度,但也会降低delete,insert和update等dml语句的执行速度。2.联…

大家好,又见面了,我是你们的朋友全栈君。Oracle 联合索引

分类: Oracle 2012-12-08 09:35 2110人阅读 评论(0) 收藏 举报

我现在用的是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只有一个,则可以更快的得到需要的结果。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/141014.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • WIN-CE系统架构

    WIN-CE系统架构分为素部分:硬件层、OEM层、操作系统层、应用层http://hovertree.com/hvtart/bjae/oy9pqb94.htm硬件层:由CPU、存储器、I/

    2021年12月27日
    40
  • hashmap 实现原理_面试hashmap底层实现原理

    hashmap 实现原理_面试hashmap底层实现原理HashMap其实也是一个线性的数组实现的,所以可以理解为其存储数据的容器就是一个线性数组。这可能让我们很不解,一个线性的数组怎么实现按键值对来存取数据呢?这里HashMap有做一些处理。  首先HashMap里面实现一个静态内部类Entry,其重要的属性有key,value,next,从属性key,value我们就能很明显的看出来Entry就是HashMap键值对实现的一个基础bean,我们上面说到HashMap的基础就是一个线性数组,这个数组就是Entry[],Map里面的内容都保存在Ent

    2022年4月18日
    47
  • GTM(Global Traffic Manager)和GSLB(Global Server Load Balancing)服务介绍「建议收藏」

    GTM(Global Traffic Manager)和GSLB(Global Server Load Balancing)服务介绍「建议收藏」最近看到一篇关于GSLB的文章,写的非常不错,学习了一下,这里做一些记录。一、GTM介绍GTM(GlobalTrafficManager的简写)即全局流量管理,基于网宿智能DNS、分布式监控体系,实现实时故障切换及全球负载均衡,保障应用服务的持续高可用性。GTM基于资源的健康状况及流量负载做智能调度决策,为用户提供最佳访问IP。网宿GTM,提供更可靠、稳定和安全的流量调度服务,助您轻松…

    2022年6月4日
    39
  • 远程过程调用(RPC)

    远程过程调用(RPC)

    2021年9月1日
    46
  • vue中启动前段服务器代码$ http-server

    vue中启动前段服务器代码$ http-server

    2021年10月12日
    49
  • mariadb 的安装及基本配置

    mariadb 的安装及基本配置文章目录一、mariadb介绍二、mariadb下载及安装三、mariadb的启停命令四、mariadb的配置五、添加用户,设置权限Navicat连接数据库一、mariadb介绍MariaDB数据库管理系统是MySQL的一个分支,主要由开源社区在维护,采用GPL授权许可。开发这个分支的原因之一是:甲骨文公司收购了MySQL后,有将MySQL闭源的潜在风险,因此社区采用分支的方式来避开这个风险。MariaDB的目的是完全兼容MySQL,包括API和命令行,使之能轻松成为MySQL的代替品。在存储引擎

    2022年5月16日
    66

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号