
写在前面:小编的话

要从大量数据中查找少量行,索引是非常有效的手段。之所以索引比读取表本身更有效,是因为索引通常是比它所在的表更小的数据结构。最常见的索引类型是B树索引,本课程对其结构和原理进行了详细介绍。此外,还介绍了索引中索引列的顺序和基于函数的索引。
在正式上课之前,我们还是要强调一下如何学习这些课程。我们做的最主要的工作是将Dev Gym上的视频翻译为中文。实际上每一节课包括4部分:
1)看我们翻译的视频,每一集只有几分钟。
2)上Live SQL做配套练习
3)小测验(选择题)
4)进一步学习(参考资料)
这4部分都是精心设计的,特别是第2和3部分,非常有助于对课程内容的理解,而且由于原网站有完整的评分积分,因此我们希望您在看完视频后,仍回到Dev Gym(https://devgym.oracle.com/)网站完成练习和测验,而且最终可以得到结业证书。点击文末“原文链接”可访问原课程页面。
以下为开发者性能课的课程设置:
第1课: 如何解读执行计划
第2课: 什么是数据库统计信息?
第3课: 我的查询做了多少工作?
第4课: 如何创建索引 <- 我们在这里
第5课: 为什么我的查询不使用索引?
第6课: 如何使用物化视图快速汇总数据
第7课: 联接如何工作?
第8课: 如何更快地插入、更新和删除
第9课: 如何查找慢 SQL
好了,下面正式开始上课。
Oracle开发者性能第4课:如何创建索引?

写在后面:小编的话

在学习完本课程之后,希望您已经掌握了以下的基本概念:
1. 最常见的索引类型为B树索引。
2. B树索引中的B表示平衡(Balanced),即从根节点到所有叶子节点的高度是相同的。
3. 索引是有开销的,他能加快查询,同时也会影响写数据时的性能。
4. 对于查找大量数据中的少数几行,索引非常有效。
5. 索引中索引列的顺序和查询的顺序是相关的,如果建立不当,可能无法被SQL所使用。因此需要了解Leading Columns的概念。
6. 另一种索引无法被利用的情况是,是优化器认为全表扫描更有效,例如需要读取大量数据进行聚合或联结。此时另一种提升性能的方法是通过内存列式存储,例如Oracle Database In-Memory。
视频的配套练习,大家可以在课程页面上登录Live SQL去做,也可以在独立的数据库环境中做,可参考我的博文(1)。也建议阅读Chris在Oracle Blogs中的文章:如何在Oracle数据库中创建和使用索引(2)。
好了,今天的课程就到这里,祝大家学习愉快!
参考链接:
(1) https://blog.csdn.net/stevensxiao/article/details/121042672
(2) https://blogs.oracle.com/sql/post/how-to-create-and-use-indexes-in-oracle-database
编辑,字幕翻译:萧宇
字幕制作&版式设计:Barbara Huang





