ホームページ >よくある問題 >mysqlの左端の原則は何を意味しますか?

mysqlの左端の原則は何を意味しますか?

百草
百草オリジナル
2023-07-11 11:18:243352ブラウズ

mysql の左端の原則は、クエリ プロセス中に、インデックスの左端の列が可能な限りフィルタリングに関与する必要があることを意味します。これはデータベース インデックス最適化の中心となるアイデアの 1 つであり、インデックスの使用効率を最大化し、クエリ速度を向上させることができます。一番左の原則は、フルテーブルスキャンなどの非効率な操作を回避し、データベースが大規模なデータセットをより速く処理できるようにし、データベーステーブルの構造とインデックスをより適切に設計するのに役立ち、システムパフォーマンスを向上させます。

mysqlの左端の原則は何を意味しますか?

このチュートリアルのオペレーティング システム: Windows 10 システム、mysql バージョン 8.0、Dell G3 コンピューター。

MySQL 一番左の原則は、データベース インデックスの最適化の中核となるアイデアの 1 つです。これは、クエリ プロセス中にインデックスの左端の列 (「プレフィックス」とも呼ばれます) を可能な限りフィルタリングに参加させることを指します。これにより、インデックスの使用効率が最大化され、クエリが高速化されます。

次は例です:

SELECT * FROM table_name WHERE column1 = 'value1' AND column2 = 'value2'

このクエリでは、結合インデックス (列 1、列 2) がある場合、左端の原則に従ってフィルター処理に最初に列 1 が使用されます。 。 column1 の値が正常に一致した場合にのみ、column2 の値がさらなるフィルタリングのために参照されます。

ただし、クエリに列 2 のみが含まれ、列 1 がない場合、結合インデックスは機能しません。

左端の原則は、テーブル全体のスキャンなどの非効率的な操作を回避し、データベースが大規模なデータ セットをより高速に処理できるようにします。同時に、データベースのテーブル構造とインデックスの設計を改善し、システムのパフォーマンスを向上させるのにも役立ちます。

左端一致の原則

MySQL のインデックスは、複数のカラムを特定の順序で参照できます。この種のインデックスは結合インデックスと呼ばれます。マッチングの原則はジョイント インデックスの場合です。

インデックスの最下層が B ツリーであることは誰もが知っているため、もちろんジョイント インデックスも B ツリーですが、キー値の数は変わります。ジョイントインデックスは 1 つではなく、複数あります。 B ツリーの構築は 1 つの値に基づいてのみ構築できるため、データベースは結合インデックスの左端のフィールドに基づいて B ツリーを構築します。

例: (a, b) の結合インデックスを作成すると、そのインデックス ツリーは次のようになります。a の値が 1、1、2、2、3 の順に並んでいることがわかります。 、 3 であり、 b の値は順不同で 1、2、1、4、1、2 です。したがって、結合インデックスは最初に a によって並べ替えられ、b は順序付けされていないため、b = 2 などのクエリ条件にインデックスを使用する方法はありません。

同時に、a の値が等しい場合、b の値は順番に配置されますが、この順序は相対的なものであることもわかります。したがって、範囲クエリが発生すると、左端の一致原則が停止し、残りのフィールドはインデックスを使用できなくなります。たとえば、a = 1 および b = 2 の場合、a フィールドと b フィールドの両方でインデックスを使用できます。これは、a の値が決定されるときに b が相対的に順序付けされるためです。また、a>1 および b=2 の場合、a フィールドはインデックスと一致しますが、 b 値 いいえ、a の値は範囲であり、b はこの範囲内で順序付けされていないためです。

利点: 左端のプレフィックスの原則を使用すると、クエリ効率も大幅に向上する可能性があり、一般的な MySQL パフォーマンス最適化方法です。

以上がmysqlの左端の原則は何を意味しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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