ホームページ > データベース > mysql チュートリアル > MySQL Join の使用原理は何ですか?

MySQL Join の使用原理は何ですか?

PHPz
リリース: 2023-05-26 10:07:17
転載
1333 人が閲覧しました
    #結合タイプ

    • 左結合。左側のテーブルが駆動テーブル、左側のテーブルが結果のベースになります。 set, join the right テーブルのデータが結果セットに追加されます

    MySQL Join の使用原理は何ですか?

    • #right join、正しいテーブルを使用します駆動テーブルとして、右側のテーブルを結果セット ベースとして、左側のテーブルのデータを結果セットに接続します

    MySQL Join の使用原理は何ですか?

    • 内部結合、結果セットは 2 つのテーブルの結果を取得します。 交差セクション

    MySQL Join の使用原理は何ですか?

      ##完全結合、結果セットは2 つのテーブルの結合
    • #mysql には完全な結合がありません。結合は結合で置き換えられます。
    • ##結合と結合すべての違いは、結合によって重複が削除されることです
    ##クロス結合デカルト積

    MySQL Join の使用原理は何ですか?

      where 条件が使用されない場合、結果セットは次のようになります。関連付けられた 2 つのテーブル行の積
    • ## と の違いは次のとおりです。

      クロス結合で結果セットが作成されると、結果セットは on 条件に従ってフィルター処理されます

    • #straight_join

      SQL の順序に従って厳密にドライバー テーブルを指定します。

      左側のテーブルはドライバーです。
    • 結合原理
    • この文は次のように書き直すことができます。その本質は、入れ子になったループの操作として理解できます。外側の for ループはテーブルを駆動し、内側の for ループはテーブルを駆動します。駆動テーブル。構成されたデータを接続する戦略に応じて 3 つのアルゴリズムに分けることができます。 Simpe Nested-Loop Join

    たとえば、テーブル A とテーブル B があり、2 つのテーブルが JOIN されている場合、テーブル A の接続テーブル条件は次のようになります。テーブル A とテーブル B で同じ ID に一致するテーブル ループが結果セットに入れられるため、この種の効率は最も低くなります。

    インデックスネストループ結合

    • 実行プロセス (ディスクスキャン)

    テーブル t1 よりデータ R の行を読み取ります;

      データ行 R からテーブル t2 にフィールドを取り出し、
    • ツリー検索

      ;

    • を満たすフィールドを取り出しますテーブル t2 の条件 行、結果セットの一部として R を含む行を形成します;
    • テーブル t1 の終わりでループが終了するまで、ステップ 1 ~ 3 を繰り返します。

      R の各行について、ツリー検索プロセスを使用して、フィールドに基づいてテーブル t2 を検索します。

      Block Nested-Loop Join

    • mysql は

      joinbuffer
    • r というバッファを使用してループの数を減らします。このバッファはデフォルトで 256 KB です。'join_%' のような show 変数を使用して表示できます。

      具体的な方法は、最初のテーブルの修飾された列を一度にクエリすることです。 、次に 2 番目のテーブルを 1 回走査し、バッファ内のすべての値と 1 つずつ比較し、比較結果を結果セットに追加します
    • JOIN の場合のみtype は ALL、結合バッファーは、index、rang、または Index_merge が使用される場合にのみ使用されます。SQL クエリのタイプは Explain で確認できます。
    • 結合の最適化
    • 結合アルゴリズムを最適化するために、インデックスのネストループ結合アルゴリズムを使用してインデックスを作成します。接続フィールドのフィールド

    少量のデータを含むテーブルを使用して、大量のデータを含むテーブルを駆動する

    • 結合バッファーのサイズ (一度にキャッシュされるデータが多いほど、外部テーブル内のループの数は少なくなります)

    • 暗黙的な変換と文字に注意してくださいインデックスの失敗を避けるための接続フィールドのエンコード

    • #

    以上がMySQL Join の使用原理は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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