ホームページ  >  記事  >  データベース  >  mysqlに複数のbtreeインデックスを追加する方法

mysqlに複数のbtreeインデックスを追加する方法

anonymity
anonymityオリジナル
2019-05-27 15:11:524449ブラウズ

現在、ほとんどのデータベース システムとファイル システムは、B ツリーまたはそのバリアント B ツリーをインデックス構造として使用しています。

1. B ツリーはバランスのとれたマルチツリーです。ルート ノードから各リーフ ノードまでの高さの値は 1 を超えず、同じレベルのノードはポインタによってリンクされます。

2、従来のBツリー上の検索では、ルートノードからリーフノードまでの検索効率は基本的に同じで大きな変動はありません。また、インデックスベースの逐次走査では、双方向ポインタも可能です。左右にすばやく移動するのに使用すると、非常に効率的です。

mysqlに複数のbtreeインデックスを追加する方法

mysql ではインデックスを使用することでクエリ効率を効果的に向上させることができますが、実際のプロジェクトでは where 条件にインデックスを追加してもインデックスが使用されない場合があります。

#例: where id=3 and Price>100;//3,100 元を超える ID を持つ製品をクエリします (ID、価格はそれぞれインデックスを追加します)

誤解: ID または価格のいずれかのみを使用できます。価格は独立したインデックスであるため、同時に使用できるのは 1 つだけです。

結合インデックス: 複数の列に同時にインデックスを作成した後、インデックスを使用する前に左プレフィックスの原則を満たす必要があります。

Take Index (a, b, c)例として。 (順序に依存するので注意)

ステートメント | インデックスを使用するかどうか

where a=3 はい、列 a のみが使用されます

ここで a=3 および =5 はい、列 ab

ここで a=3、b=4、および c=5 が使用されます。 はい、abc

ここで b=3 または c=4 が使用されますいいえ、スキップされるためです。 a

ここで a=3 および c =4 a はインデックスを使用します。c はできません

ここで a=3 および b は 'hello%' のように a が使用され、部分 b は使用済み###

以上がmysqlに複数のbtreeインデックスを追加する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。