Open1
失敗から学ぶRDBの正しい歩き方を読む

JOINのアルゴリズム
- Nested Loop Join
- Hash Join
- Sort Marge Join
JOINは掛け算
JOIN数が多くなると、パフォーマンスが落ちる
LEFT JOIN
RIGHT JOIN
OUTER JOIN
- MySQLは NLJのアルゴリズムのみ持っている
- OUTER JOINはサポートしていない
Nested Loop Join
1行ずつループして処理
Hash Join
一度に全件読み込んで処理
Sort Marge Join
全件をソートして上から順に比較
INDEX
- 基本的にBtree index
INDEXが効かないケース
- 検索結果が多い、全体の件数が少ない
- カーディナリティが低いところのINDEX
- 条件にその列を使っていない
# INDEXが利用されない例
SELECT * FROM users where age * 10 > 100;
# INDEXが利用される例
SELECT * FROM users where age * 100/10;
Ref
作成者以外のコメントは許可されていません