基数保持ジョインの高速化
このトピックでは、テーブルプルーニングを使用して基数保持ジョインを高速化する方法について説明します。この機能は v3.1 以降でサポートされています。
概要
基数保持ジョインは、出力行の基数と重複 係数がジョインの入力テーブルの1つと同じままであることを保証します。以下の例を考えてみましょう。
-
Inner Join:
SELECT A.* FROM A INNER JOIN B ON A.fk = B.pk;
この場合、
A.fk
(外部キー)は NOT NULL であり、B.pk
(主キー)を参照しています。A
の各行はB
のちょうど1行と一致するため、出力の基数と重複係数はA
のものと一致します。 -
Left Join:
SELECT A.* FROM A LEFT JOIN B ON A.fk = B.pk;