MySQLとPostgreSQLで採用されている 結合処理のアルゴリズムに違いがある異なる。
MySQLでは Nested Loop JOINのみだけど、
PostgreSQLでは
Nested Loop JOIN、Hash JOIN、Merge JOINの
三種類がサポートされている。
Nested Loop Join
- 駆動表(JOIN元)を1行毎に内部表(JOIN先)の全レコードと付き合わせて該当のものを結合していく。
Hash Join
- 内部表の結合キーのハッシュリストを作成して、その後、駆動表と結合を行う。
Merge Join
- 駆動表と内部表を結合キーで、 ソートした後で 順番に付き合わせて結合していく。
コメント