教你创建Oracle复合索引(精)

什么是复合索引?

复合索引顾名思义,区别于单列索引,是由两个或多个列一起构成的索引。其在B树上的数据结构是什么样?如下图,是一个包含两列的复合索引。
在这里插入图片描述
如果你观察仔细,还会发现它的叶子节点是ASC递增排序的。现根据第一个值排序,然后根据第二个值排序。查的时候也一样,先查第一个值,在查第二个值。你可以想象以下,三个列组成的复合索引数据结构该是什么样的。

在实际开发中,我们经常会遇到创建表的情况。一开始,只会创建一个主键id,oracle会为主键默认创建索引。随着经验的增加,开始心有余力去考虑性能,会开始研究索引,比如查询报表、订单等业务场景。这时候多多少少都会创建索引了,然后开始研究复合索引。复合索引首先带来的问题是你如何在脑海中构建一个B树上的复合索引结构?接下来就到了如何创建复合索引的问题。
索引的建立,是为了提高查询效率,但索引设计不合理,又很影响写性能,这就像CAP只能满足其中两个条件一样。所以完美的东西不存在,万物是在矛盾中前行。说白了,就是要用最少、结构最简单的索引来达到目标。

实例

我们有这样一张表

id a b c
1 1 201 7
2 1 202
相关推荐
<p> <span style="background-color:#FFFFFF;font-size:14px;">本课程会详细的介绍数据库基础概念,以及常用的数据库实战操作。</span> </p> <p> <span style="background-color:#FFFFFF;font-size:14px;">本课程从概念、实战和原理三方面深入的讲解了Oracle数据库的方方面面,课程内容涵盖了Oracle数据库中的绝大部分基础知识,以及高级编程中的常见案例和应用。大家既可以全部学习,掌握整个oracle体系知识,也可以选择性的观看自己需要的部分内容。</span> </p> <p> <span style="background-color:#FFFFFF;font-size:14px;">本课程覆盖的内容点,如下所示。</span> </p> <p> <span style="color:#000000;font-size:14px;background-color:#FFFFFF;">1.数据库基础概念</span> </p> <p> <span style="color:#000000;font-size:14px;background-color:#FFFFFF;">2.数据库的CRUD等基本操作</span> </p> <p> <span style="color:#000000;font-size:14px;background-color:#FFFFFF;">3.数据库中的</span><span style="background-color:#FFFFFF;font-size:14px;">存储过程、存储函数、触发器、事务、索引、序列、PLSQL等数据库高级编程相关技术</span> </p> <p> <span style="background-color:#FFFFFF;font-size:14px;">4.分布式数据库</span> </p> <p> <span style="background-color:#FFFFFF;font-size:14px;"></span><span style="background-color:#FFFFFF;font-size:14px;">     学习完本课程后,大家可以快速进行数据库开发,并且能够独立完成常见的数据库操作,以及分布式数据搭建。</span><span style="background-color:#FFFFFF;font-size:14px;">本课程在讲解中采用了图文结</span><span style="background-color:#FFFFFF;font-size:14px;">合</span><span style="background-color:#FFFFFF;font-size:14px;">的方式,对每个知识点的讲解都配有详细且完整的案例,对于重难点的讲解也配有绘图,可以帮助大家快速掌握数据库的各个细节。</span> </p> <p> <br /></p>
©️2020 CSDN 皮肤主题: 编程工作室 设计师:CSDN官方博客 返回首页