B树索引

原创 2013年12月03日 15:36:55

B树索引

      结构类似于二叉树的平衡树。目标是尽可能减少oracle查找数据的时间

      树的底层是叶节点(leaf node)或者叶子块(leaf block),它包含了索引键值和键值所对应的行的rowid

      叶节点之上所对应的是分支块(branch block)

     索引特点:

     1、根据索引键值和rowid进行排序

      2、叶子节点之间是双向连接的链表(为索引区间扫描提供便捷——)

       3、因为是平衡,查找索引键值所执行IO次数基本差不多(2~3,根据索引高度来),

4、空置不会维护到索引中去(除了函数索引对空置有特殊处理)

5、基本一个索引键值条目对应一行记录

drop table person;
create table person (id int,name varchar2(100));
create unique index ind_person_id on person(id);
begin
       for i in 1..10 loop
           insert into person(id,name) values(i,'name'||i);
       end loop;
       commit;
end;

select t.blevel from user_indexes t where t.index_name=upper('ind_person_id');
analyze index ind_person_id validate structure ;----组建索引
analyze index ind_person_id compute statistics ;---计算统计信息
select t.* from user_indexes t where t.index_name=upper('ind_person_id');



决定索引的性能,有一个函数决定,这个函数由下面参数决定:

1、通过索引获取的访问表中数据的多少(百分比)

2、表中的数据如何布局。

深入研究B树索引

  • 2011年11月09日 15:41
  • 359KB
  • 下载

如何用B+树设计数据库中的索引文件

声明: 1、B+树的代码不是我写的,是网上的,关于java写的B+树的都是这个代码,我也不知道怎么写原作者。 2、如果不懂B+树是肯定看不懂这篇blog的,我表达能力有限,本来就说话不清楚,你不懂...

数据库中B+树索引的原理

  • 2010年02月17日 14:33
  • 1.47MB
  • 下载

B树索引和自创Connect.rar

  • 2014年08月27日 11:50
  • 13KB
  • 下载

B+树|MYSQL索引使用原则

MYSQL一直了解得都不多,之前写sql准备提交生产环境之前的时候,老员工帮我检查了下sql,让修改了一下存储引擎,当时我使用的是Myisam,后面改成InnoDB了。为什么要改成这样,之前都没有听过...

B树索引实现歌曲管理系统 qt界面

  • 2012年09月23日 21:15
  • 10.6MB
  • 下载

B树索引的研究

  • 2007年12月05日 11:48
  • 67KB
  • 下载

InnoDB的B+树索引

B+树索引其本质就是B+树在数据库中的实现,但是B+索引在数据库中有一个特点就是其高扇出性,因此在数据库中,B+树的高度一般都在2~3层,也就是对于查找某一键值的行记录,最多只需要2到3次IO,这倒不...
  • dz45693
  • dz45693
  • 2017年11月28日 18:52
  • 99

从MySQL Bug#67718浅谈B+树索引的分裂优化

问题背景 今天,看到Twitter的DBA团队发布了其最新的MySQL分支:Changes in Twitter MySQL 5.5.28.t9,此分支最重要的一个改进,就是修复了MySQL 的Bu...
  • yjh314
  • yjh314
  • 2016年07月07日 14:41
  • 284
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:B树索引
举报原因:
原因补充:

(最多只允许输入30个字)