网站首页 > 技术文章 正文
进行SQL优化的过程中,首先需要了解语句相关对象的情况。数据库对象设计的好坏,会直接影响相关对象语句执行的效率。因此,有时在SQL语句实在无法优化的情况下,可以考虑通过修改对象的结构来完成优化。
索引可以说是Oracle数据库中除了表以外最重要的对象了。通过添加索引来提高查询性能,也是最为常见的一种优化手段。甚至很多非DBA人员认为,数据库优化就是加索引。这虽然说有些偏颇,但也说明了索引对于优化的重要意义。
B树索引
B树索引是Oracle数据库的默认索引,也是最为常见的一种索引。
B树索引整个索引结构就是一个平衡树(Balance Tree),这也就是称为B树索引的原因。在整个树形结构中,包含有3种节点,分别是根节点(Root)、分支节点(Branch)、叶子节点(Leaf)。有的简单的索引只有根节点和叶子节点。在根节点或分支节点中,存在一组键值范围,当根据条件访问到这个节点时,根据范围路由到不同的分支节点或叶子节点。
位图索引
位图索引是另外一种较为常见的索引,虽然说是较为常见,但也仅限于个别场景,其主要适用在分析型数据库中。其原理与B树索引完全不同。在Oracle的优化器中,个别场景下可以将两类索引相互转换。
其他索引
上面我们谈到了最为常见的两种索引类型,下面再看看其他索引类型。
从本质上来讲,它们还是B树或者位图索引。
函数索引
函数索引就是将一个函数计算的结果存储在列中,而不是存储列数据本身。
虚拟列索引
虚拟列是在11g中新引入的一个技术。
从字面就可以理解,创建的列不真正物理保存,而只是一个定义。
而基于这个列创建的索引,就是虚拟列索引。在某种程度上,
虚拟列索引和上面谈到的函数索引有些类似
虚拟索引
Oracle可以通过NOSEGMENT子句命令创建一个
永远不会使用且不会为其分配任何盘区的索引。
不可见索引
不可见索引不是一种特殊的索引类型,而是使索引对优化器“不可见”,这样就没有查询会使用它了。这对于评估索引使用效果非常有帮助。
压缩索引
Oracle中的索引键允许压缩存储索引键中前面重复的部分,并且是每个叶块而不是每个叶块中的每行存储重复的值。
复合索引
当某个索引包含有多个已索引的列时,这个索引就称为复合索引。
反转索引
反转索引是一种特殊的B树索引。它将索引列中列值的每个字节的位置反转。
猜你喜欢
- 2024-11-15 值得收藏!HashMap 从入门到精通看这篇文章就够了
- 2024-11-15 如何理解数据库管理系统的功能和数据模型?
- 2024-11-15 Presto 设计与实现(十一):抽象语法树 AST
- 2024-11-15 Color Oracle:产品设计时也要考虑颜色的选择
- 2024-11-15 Oracle项目管理系统之任务督办及收发文
- 2024-11-15 IT技术栈: 通俗易懂的聊聊B+树,用Golang语言如何实现B+树
- 2024-11-15 第15期:索引设计(索引组织方式 B+ 树)
- 2024-11-15 常见数据结构图解:跳表、二叉树、红黑树、B树、B+树
- 2024-11-15 mysql 级联查询树形结构(mysql 级联操作)
你 发表评论:
欢迎- 612℃几个Oracle空值处理函数 oracle处理null值的函数
- 603℃Oracle分析函数之Lag和Lead()使用
- 592℃0497-如何将Kerberos的CDH6.1从Oracle JDK 1.8迁移至OpenJDK 1.8
- 589℃Oracle数据库的单、多行函数 oracle执行多个sql语句
- 583℃Oracle 12c PDB迁移(一) oracle迁移到oceanbase
- 576℃【数据统计分析】详解Oracle分组函数之CUBE
- 566℃最佳实践 | 提效 47 倍,制造业生产 Oracle 迁移替换
- 558℃Oracle有哪些常见的函数? oracle中常用的函数
- 最近发表
-
- PageHelper - 最方便的 MyBatis 分页插件
- 面试二:pagehelper是怎么实现分页的,
- MyBatis如何实现分页查询?(mybatis-plus分页查询)
- SpringBoot 各种分页查询方式详解(全网最全)
- 如何在Linux上运行exe文件,怎么用linux运行windows软件
- 快速了解hive(快速了解美国50个州)
- Python 中的 pyodbc 库(pydbclib)
- Linux搭建Weblogic集群(linux weblogic部署项目步骤)
- 「DM专栏」DMDSC共享集群之部署(一)——共享存储配置
- 故障分析 | MySQL 派生表优化(mysql pipe)
- 标签列表
-
- 前端设计模式 (75)
- 前端性能优化 (51)
- 前端模板 (66)
- 前端跨域 (52)
- 前端缓存 (63)
- 前端aes加密 (58)
- 前端脚手架 (56)
- 前端md5加密 (54)
- 前端路由 (61)
- 前端数组 (73)
- 前端js面试题 (50)
- 前端定时器 (59)
- 前端获取当前时间 (50)
- Oracle RAC (76)
- oracle恢复 (77)
- oracle 删除表 (52)
- oracle 用户名 (80)
- oracle 工具 (55)
- oracle 内存 (55)
- oracle 导出表 (62)
- oracle约束 (54)
- oracle 中文 (51)
- oracle链接 (54)
- oracle的函数 (58)
- 前端调试 (52)
本文暂时没有评论,来添加一个吧(●'◡'●)