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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 除了p站还有哪些站_p站以外的

    除了p站还有哪些站_p站以外的说p站,估计不知道的人已经很少了,不过今天搜罗君要说是,除了p站还有哪些站?我盲猜,应该很多人思考过这个问题了~咱们按照英文字母顺序ABCD···XYZ来说1.A站AcFun,中国第…

    2022年9月25日
    0
  • 小程序列表跳转至详情_小程序跳转链接怎么获取

    小程序列表跳转至详情_小程序跳转链接怎么获取效果展示:列表页js部分:onLoad:function(options){varthat=this;wx.request({url:’你的接口’,data:{ 接口参数},header:{‘content-type’:’ap…

    2022年8月18日
    6
  • Java SpringBoot下载文件超时

    Java SpringBoot下载文件超时#端口server.port=9098#server端的socket超时间(毫秒),使用值-1表示没有(即无限)超时,默认值为60000(即60秒)#Tomcat附带的标准server.xml将此值设置为20000(即20秒),除非disableUploadTimeout设置为false,否则在读取请求正文(如果有)时也会使用此超时server.connection-timeout=80000server.disableUploadTimeout=false…

    2025年6月9日
    1
  • Repeater嵌套gridview「建议收藏」

    Repeater嵌套gridview「建议收藏」前台:<asp:RepeaterID=”Repeater1″runat=”server”DataSourceID=”SqlDataSource1″OnItemDataBound=”Repeater1_ItemDataBound”><ItemTemplate>id:<%#Eval(“ID”)%>c…

    2022年10月12日
    1
  • Java基础知识(知识点)

    Java基础知识(知识点)1 Java 是一种高级计算机语言 是可以编写跨平台应用软件 完全面向对象的程序设计语言 2 Java 划分为三个技术平台 JavaSE JavaEE JavaMEJavaSE 是桌面应用 JavaEE 是 web 应用 平台企业版 JavaME 是手机应用 平台微型版 3 Java 语言的特点 简单易用 安全可靠 跨平台 通过 Java 虚拟机实现 面向对象 支持多线程 自动进行垃圾回收 c 语言没有 Java 引入了虚拟机的概念 通过虚拟机 JVM 可以在不同的操作系统上运行 Java 程序 从而实现跨平台特

    2025年7月11日
    0
  • excel怎么生成xml文件_Excel文件格式或扩展名无效

    excel怎么生成xml文件_Excel文件格式或扩展名无效JS将数据生成Excel(XML)并保存为.xls文件,已封装可以直接使用简单写法:<?xmlversion=”1.0″encoding=”UTF-8″?><?mso-applicationprogid=”Excel.Sheet”?><Workbookxmlns=”urn:schemas-microsoft-com:office:spreadsheet”xmlns:o=”urn:schemas-microsoft-com:office:office..

    2022年8月22日
    3

发表回复

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

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