SQLアンチパターンを読み始めたので、1つ1つ書いてのメモです
目的
- SQL クエリの数を減らす
アンチパターン
- 複雑な問題をワンステップで解決しようとする
- 1つのクエリで複数のことをやろうとすると
- 変更、修正、デバッグが難しい
- 実行に時間がかかる
用いてもいいパターン
- フレームワーク、BIツールを使う時
解決策
分割統治を行う
- まったく同じ予測をする 2 つの競合する理論があるときは、単純な方が優れている
- クエリ分割は
- 開発、メ ンテナンス、パフォーマンスなどの面で様々なメリット
- UNION を使う
- CASE式とSUM関数を使う
まとめ
1つのSQLでやろうとせずに、状況に応じて分割することも考える
感想
すごく長いSQL見かける...
ActiveRecord を上手く使おう