`

B-Tree索引

阅读更多
B-Tree在数据结构中有两种含义:
 
  • Binary Tree(二叉树)
  • Blance Tree (平衡树)
 

哪什么是二叉树?什么又是平衡树呢?
  二叉树是指一个父节点最多含有两个子节点(可以含有一个子阶段,比如左二叉树、右二叉树),形如
 
  而平衡树是指一个父节点可以有多个子节点,而且每个子节点含义相同个数子节点活叶子节点,且叶子节点在同一级别,形如
 
B-Tree Index采用的是平衡树,形如

索引在数据库中是单独的对象,它是由Oracle自动管理的。
比如
CREATE TABLE t(id int,sex char(1),name char(10));
   
col object_name format a20;
   
SELECT object_name,object_type FROM user_onjects;
  
    OBJECT_NAME       OBJECT_TYPE
    ----------------  -------------
    T                 TABLE  

  
 CREATE INDEX t_idx1 on t(id);
    
SELECT object_name,object_type FROM user_onjects;
   
OBJECT_NAME       OBJECT_TYPE
    ----------------  -------------
    T                 TABLE  
    T_IDX1            INDEX


由此可知,建立索引对数据库查询提高了很高速度,但是不是建立索引越多,对数据库就越有利呢?回答是否定的,原因是索引越多,数据库表在做INSERT,UPDATE,DELETE时,ORACLE自动维护索引的开销比较大,这样会影响数据库的性能。

数据库索引查询的原理(如下图),其中最下叶子节点存放的是真实数据,采用的是双向链表结构完成的关联,这样在做这样的查询语句时,
SELECT * FROM t WHERE id > 23 and id < 45;
它实际上是先找最小值23,然后根据链表一直找到45,这就是所谓的“索引范围扫描
分享到:
评论
1 楼 rainShare 2012-05-23  

相关推荐

    B-TREE索引概念.pdf

    oracle优化:B-TREE索引概念。

    Oracle8i 数据库中B-tree索引的维护

    在Oracle中,SYSTEM表是安装数据库时自动建立的,它包含数据库的全部数据字典,存储过程、包、函数和触发器的定义以及系统回滚段。本文只讨论Oracle中最常见的索引,即是B-tree索引。

    bitmap 索引和 B-tree 索引在使用中如何选择

    现在,我们知道优化器如何对这些技术做出反应,清楚地说明 bitmap 索引和 B-tree 索引各自的最好应用。 在 GENDER 列适当地带一个 bitmap 索引,在 SAL 列上创建另外一个位图索引,然后执行一些查询。在这些列上,用...

    MySQL Hash索引和B-Tree索引的区别

    MySQL Hash索引结构的特殊性,其检索效率非常高,索引的检索可以一次定位,不像B-Tree 索引需要从根节点到枝节点,最后才能访问到页节点这样多次的IO访问,所以 Hash 索引的查询效率要远高于 B-Tree 索引。...

    浅析MysQL B-Tree 索引

    看完上面的文章就可以理解为何B-Tree索引能够快速访问数据了。因为存储引擎不再需要进行全表扫描获取需要的数据,叶子节点包含了所有元素信息,每一个叶子节点指针都指向下一个节点,所以很适合查找范围数据。 索引...

    c 语言开发b-tree数据文件索引.zip_b tree_b+ tree_b-tree_c语言 文件_索引

    c 语言开发b-tree数据文件索引 .zipc 语言开发b-tree数据文件索引 .zip

    位图索引与 B-tree 索引:选择与时间

    NULL 博文链接:https://wlh269.iteye.com/blog/747555

    谷歌 B-Tree C++ 模板库.

    谷歌 B-Tree C++ 模板库 介绍 谷歌开源团队近日发布了C++ B-Tree,这是一个C++模板库,实现了基于B-tree数据结构的有序内存容器。类似于STL的map、set、multimap和multiset模板,C++ B-tree也提供了btree_map、...

    B.rar_B-树索引_B树_b tree_b tree java_java B-Tree

    B+树的实现,利用JAVA写的,有详细的注释说明

    PostgreSQL教程(八):索引详解

     PostgreSQL提供了多 种索引类型:B-Tree、Hash、GiST和GIN,由于它们使用了不同的算法,因此每种索引类型都有其适合的查询类型,缺省时,CREATE INDEX命令将创建B-Tree索引。    1. B-Tree:  代码如下:  ...

    一种基于B+-tree索引的有效相似查询算法 (2012年)

    在距离索引结构相似查询算法的基础上,利用主成分分析方法对多元时间序列进行降维,并对主成分进行聚类,在聚类质心与各类之间的范数所构成的一维空间上,对聚类建立B+-tree索引结构,然后利用k近邻查询算法查找出与查询...

    MySql索引算法原理解析(通俗易懂,只讲B-tree)

    NULL 博文链接:https://zzc1684.iteye.com/blog/2226223

    谷歌 B-Tree C++ 模板库

    谷歌开源团队近日发布了C++ B-Tree,这是一个C++模板库,实现了基于B-tree数据结构的有序内存容器。类似于STL的map、set、multimap和multiset模板,C++ B-tree也提供了btree_map、btree_set、btree_multimap和btree_...

    高端路由器CIDR表非关键字索引的B-Tree机制.pdf

    高端路由器CIDR表非关键字索引的B-Tree机制.pdf

    mysqlsql优化进阶教程-含视频及逻辑图

    MySQL支持多种类型的索引,包括B-tree索引、哈希索引、全文索引等。在选择索引类型时,需要根据具体的业务场景和查询需求进行评估和选择。例如,对于范围查询和排序操作频繁的字段,通常选择B-tree索引效果较好;而...

    MYSQL索引

    B-Tree索引B-Tree通常意味着所有的值都是按顺序存储的,并且每一个叶子页到根的距离相同。图中根节点没有画出来。B-Tree对索引列是顺序组织存储的,索引很适合查找范围数据。 B-Tree索引的限制 如果不是按照索

    ORACLE数据库索引工作原理

    通过两个图形说明了在oracle数据库中b-tree索引和位图索引的工作原理

    MySQL索引 聚集索引

    MySQL索引 聚集索引 如果你想了解MySQL索引查询优化,你首先应该对MySQL数据组织结构、B-Tree索引、聚集索引,次要索引有一定的了解,才能够更好地理解MySQL查询优化行为。这里主要探讨MySQL InnoDB的聚集索引。

Global site tag (gtag.js) - Google Analytics