sql统计信息优化(SQL优化相关对象索引)
sql统计信息优化(SQL优化相关对象索引)上面我们谈到了最为常见的两种索引类型,下面再看看其他索引类型。其他索引B树索引整个索引结构就是一个平衡树(Balance Tree),这也就是称为B树索引的原因。在整个树形结构中,包含有3种节点,分别是根节点(Root)、分支节点(Branch)、叶子节点(Leaf)。有的简单的索引只有根节点和叶子节点。在根节点或分支节点中,存在一组键值范围,当根据条件访问到这个节点时,根据范围路由到不同的分支节点或叶子节点。位图索引位图索引是另外一种较为常见的索引,虽然说是较为常见,但也仅限于个别场景,其主要适用在分析型数据库中。其原理与B树索引完全不同。在Oracle的优化器中,个别场景下可以将两类索引相互转换。
进行SQL优化的过程中,首先需要了解语句相关对象的情况。数据库对象设计的好坏,会直接影响相关对象语句执行的效率。因此,有时在SQL语句实在无法优化的情况下,可以考虑通过修改对象的结构来完成优化。
索引可以说是Oracle数据库中除了表以外最重要的对象了。通过添加索引来提高查询性能,也是最为常见的一种优化手段。甚至很多非DBA人员认为,数据库优化就是加索引。这虽然说有些偏颇,但也说明了索引对于优化的重要意义。
B树索引
B树索引是Oracle数据库的默认索引,也是最为常见的一种索引。
B树索引整个索引结构就是一个平衡树(Balance Tree),这也就是称为B树索引的原因。在整个树形结构中,包含有3种节点,分别是根节点(Root)、分支节点(Branch)、叶子节点(Leaf)。有的简单的索引只有根节点和叶子节点。在根节点或分支节点中,存在一组键值范围,当根据条件访问到这个节点时,根据范围路由到不同的分支节点或叶子节点。
位图索引
位图索引是另外一种较为常见的索引,虽然说是较为常见,但也仅限于个别场景,其主要适用在分析型数据库中。其原理与B树索引完全不同。在Oracle的优化器中,个别场景下可以将两类索引相互转换。
其他索引
上面我们谈到了最为常见的两种索引类型,下面再看看其他索引类型。
从本质上来讲,它们还是B树或者位图索引。
函数索引
函数索引就是将一个函数计算的结果存储在列中,而不是存储列数据本身。
虚拟列索引
虚拟列是在11g中新引入的一个技术。
从字面就可以理解,创建的列不真正物理保存,而只是一个定义。
而基于这个列创建的索引,就是虚拟列索引。在某种程度上,
虚拟列索引和上面谈到的函数索引有些类似
虚拟索引
Oracle可以通过NOSEGMENT子句命令创建一个
永远不会使用且不会为其分配任何盘区的索引。
不可见索引
不可见索引不是一种特殊的索引类型,而是使索引对优化器“不可见”,这样就没有查询会使用它了。这对于评估索引使用效果非常有帮助。
压缩索引
Oracle中的索引键允许压缩存储索引键中前面重复的部分,并且是每个叶块而不是每个叶块中的每行存储重复的值。
复合索引
当某个索引包含有多个已索引的列时,这个索引就称为复合索引。
反转索引
反转索引是一种特殊的B树索引。它将索引列中列值的每个字节的位置反转。
2022MySQL—— 最新版安装保姆级超详细教程(附安装包)_哔哩哔哩_bilibili