Slide 42
Slide 42 text
複数 index の活⽤
SELECT ... WHERE x = 1 AND y = 2
のようなクエリの場合、
( x
, y
) または ( y
, x
) の複合 index があれば⼗分だが
あらゆるクエリに対して複合 index を⽤意するのは時として過剰。
⼀⽅で、 x
, y
カラムそれぞれ単独の index がある場合、
MySQL (>= 5), PostgreSQL (>= 8.1), Oracle であれば以下相当の最適化が可能である:
SELECT ... WHERE x = 1
INNER JOIN
SELECT ... WHERE y = 2
x
, y
index それぞれで絞り込んだ結果の AND を取る。
INNERT JOIN 相当のコストが掛かるため複合 index には劣るが、有⽤ではある。
( MySQL は何故かこれが出来ないと思い込まれていることが... )
42