前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【DB笔试面试548】在Oracle中,索引有哪3大特性?

【DB笔试面试548】在Oracle中,索引有哪3大特性?

作者头像
小麦苗DBA宝典
发布2019-09-29 15:22:21
3850
发布2019-09-29 15:22:21
举报

题目部分

在Oracle中,索引有哪3大特性?

答案部分

一般来说索引有3大特性,索引高度比较低、索引存储列值及索引本身有序,对这3大特性的应用如下表所示:

索引特性

带来的优势

应用的常见SQL

高度比较低

索引高度低有利于索引范围扫描,这也是通过索引可以非常迅速地从海量数据中获取少量数据的原因。索引的高度越高,访问索引需要读取的数据块数越多,效率越差。

SELECT * FROM T WHERE ID=1;

索引存储列值

由于索引比表一般要小得多,所以在通过索引本身就可以查找到所需要的数据的情况下,可以将表看成是一个“瘦表”或“小表”,无须索引回表读这个过程(索引回表读是非常耗费性能的),这样访问路径就会大大减少。利用该特性可以优化的SQL包括COUNT(*)、SUM(索引列)等聚合语句。

SELECT COUNT(*) FROM T;SELECT SUM(OBJECT_ID) FROM T;

索引本身有序

能够利用索引本身已有的排序特性从而消除目标SQL的排序操作,从而优化ORDER BY等排序语句。

SELECT * FROM T WHERE OBJECT_ID>2 ORDER BY OBJECT_ID;

能够用索引有序的特性在叶子块的最左边或最右边找到最小和最大值,从而优化类型MAX、MIN语句。

SELECT MAX(OBJECT_ID) FROM T;

另外,需要特别注意的是,索引不存储空值。

本文选自《Oracle程序员面试笔试宝典》,作者:李华荣。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-04-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 DB宝 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档