2017-04-23 5 views
0

RDBMSの実装にB +ツリーが使用されていることを知りましたが、今はC/C++でRDBMSを実装したいと思っています。 Select QueryでRDBMS B + Tree Indexingが機能する方法

私は検索クエリがデータベースにどのように動作するかの概念的な疑問を持って、我々は今、私は列{ID、名前、電話番号、住所を持つテーブル

を持っていたと言う、B +ツリーに(キー、値)を格納します}

と私はphone = 'xyz'でレコードを検索しなければなりません。データベースはB +ツリーを使ってレコードを効率的に取得する方法を教えてください。

レコードでO(N)検索が完了したか、最適化されていますか?

答えて

1

is a complete O(N) searchインデックスがない場合は、
インデックスがある場合はis optimizedです。

+0

すべての列の最適化をサポートできる最適化されたバージョンを実装する最適な方法は何ですか?任意の列の検索が最適化されるように – praveen

+0

複数のBツリー索引またはフルテキスト索引。 –

+0

ありがとうございます。 name = 'abcd'やphone = 'xyz'などのSQLの検索クエリはどのようにして取得されますか、SQLでは複数のb-treeまたはフルテキストインデックスが使用されます。 私はC/C++でSQLプロジェクトを行いたいので、実際に検索クエリが値を効率的に検索する方法について考えてみたいです。 – praveen

0

平均場合O(logb(N))

ワーストキャストO(N)

B +ツリーは、MYSQLに特別に複数のバイナリ検索ツリーのように動作し、blanced木です。その実装は変更することができます。