マージジョインとは
マージジョインは一般にソートマージジョインと呼ばれ、これは多テーブル結合クエリでよく使用されるジョイン方式です。具体的には、まず関連テーブルの結合列をそれぞれソートし、その後、それぞれのソートされたテーブルからデータを抽出し、これらのデータを別のソートされたテーブルのデータとマッチングします。
マージジョインは追加のソート処理が必要なため、より多くのリソースを消費します。一般的に、マージジョインが適用可能な場面では、ハッシュジョインの方が優れた性能を発揮します。つまり、ハッシュジョインはマージジョインよりも効果的です。ただし、結合キーが既にソートされている場合、マージジョインの実行時に再ソートが不要となり、この状況ではマージジョインの性能がハッシュジョインを上回ります。このような場合にマージジョインの性能優位性が効果的に発揮されます。
LibraDBエンジンは以前のバージョンにおいて、ハッシュジョインのみをサポートしていましたが、バージョン2.2410.1.0以降では、列ストレージエンジンも主キーに基づくマージジョイン機能をサポートするようになりました。
適用シーン
Joinキーが両テーブルの主キーであるシナリオでは、等価結合(A.a=B.a)を行うと顕著な効果があります。
使用方法
現在、指定されたヒントを使用してマージジョインを利用する方法のみサポートされています。以下のコマンドで示します。
select * from orders o,lineitem l where o.o_orderkey=l.l_orderkey;