理解B*treeindex内部结构

WBOY
リリース: 2016-06-07 16:06:37
オリジナル
1176 人が閲覧しました

Oracle数据库里的B树索引就好象一棵倒长的树,它包含两种类型的数据块:一种是索引分支块,另一种是索引叶子块 索引分支块包含指向相应索引分支块/叶子块的指针和索引健值列(这里的指针是指相关分支块/叶子块的块地址RDBA。 事实上,如果使用准确的名字来描

Oracle数据库里的B树索引就好象一棵倒长的树,它包含两种类型的数据块:一种是索引分支块,另一种是索引叶子块 索引分支块包含指向相应索引分支块/叶子块的指针和索引健值列(这里的指针是指相关分支块/叶子块的块地址RDBA。

事实上,如果使用准确的名字来描述关系型数据库中的B-Tree索引,并不能称其为B-Tree索引,而应当称其为B*-Tree索引。

看下面的索引结构图:

\

/+*
drop table gyj_t1;

create table gyj_t1 (
id int,
name varchar2(100)
);



begin 
 for i in  1 .. 5000 loop
   insert into gyj_t1 values(i,'gyj'||i);
    commit;
 end loop; 
end;
/


非唯一索引
create index idx_gyj_t1 on gyj_t1(id);


唯一索引
drop index idx_gyj_t1;
create unique index idx_gyj_t1 on gyj_t1(id);


gyj@ZMDB> select object_id from dba_objects where object_name='IDX_GYJ_T1';

 OBJECT_ID
----------
     24515

gyj@ZMDB> select header_file,header_block from dba_segments where segment_name='IDX_GYJ_T1';

HEADER_FILE HEADER_BLOCK
----------- ------------
          7         2618

+/
ログイン後にコピー

\

 

\

ALTER SESSION SET EVENTS 'immediate trace name treedump level 24515';

----- begin tree dump

 

\

\

*********************************************************************************************转储枝块

 

\

********************************************************************************转储叶块

 

\

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート