クエリーの最適化

JOINしたりサブクエリーを使ったりビューを使ったりといういろんなパターンを組み合わせてパフォーマンスを計ってみた。
やはりサブクエリーで絞り込んだ上で結合というのが一番速いのか。最初データがない状態で動かしたときはLEFT JOINが速かったりしたんだけど、データの存在するクエリーでは先に絞り込んだサブクエリーのほうが段違いに速かった。
データなしの状態だけ見て危うく最適化しなくていいやと思ってしまうところだ。
明日はSQL生成部に手を入れるか。結構大変だな、テストも書き換えなきゃいけないし。でも5倍くらいとか速くなる可能性もあるから。