1

どのデータベースがインデックスの実装にBツリーよりもB+ツリーを使用しているかどうかに関する情報はどこにありますか?

OracleはB+Treesを使用しているようです。ドキュメントには記載されていませんが、グラフィックはB+Treeが実際に使用されていることを示しているようです。

4

3 に答える 3

3

ウィキペディアには、 B+ ツリーをサポートする多数のデータベースがリストされています。

ただし、データベースが複数の種類のインデックスをサポートすることは完全に可能であることに注意してください。

于 2010-06-04T15:00:17.527 に答える
1

SQL Serverの情報は、次のとおりです。http: //msdn.microsoft.com/en-us/library/ms177443.aspx

SQL Serverでは、インデックスはBツリーとして編成されます。インデックスBツリーの各ページはインデックスノードと呼ばれます。Bツリーの最上位ノードはルートノードと呼ばれます。インデックスの最下位レベルのノードは、リーフノードと呼ばれます。ルートノードとリーフノードの間のインデックスレベルは、まとめて中間レベルと呼ばれます。クラスタ化インデックスでは、リーフノードに基になるテーブルのデータページが含まれます。ルートおよび中間レベルのノードには、インデックス行を保持するインデックスページが含まれています。各インデックス行には、キー値と、Bツリーの中間レベルのページまたはインデックスのリーフレベルのデータ行へのポインタが含まれています。インデックスの各レベルのページは、二重リンクリストでリンクされています。

于 2010-06-04T14:57:47.923 に答える
1

Oracle のデフォルトのインデックスは B* インデックスです。(AB* インデックスは、B+ インデックスの「任意の」バリエーションです。) Oracle は、DBA および Fundamentals のドキュメントの一部で B* について言及しています。クラスター インデックスを使用するクラスターを作成することもできます。データ ウェアハウスまたは OLAP データベースにビットマップ インデックスを作成できます。ビットマップ インデックスは、テーブルがめったに更新されない場合は正常に機能する可能性がありますが、OLTP データベースではパフォーマンスが非常に低下します。

パフォーマンス上の理由から、OLTP 用に設計されたすべてのデータベースは B* ツリーをプライマリ インデックスとして使用していると確信しています。たとえば、Teradata はデータ ウェアハウス向けに設計されており、ハッシュベースのインデックスを使用しています。

于 2010-06-04T15:13:09.770 に答える