速度

select column1, (column2 - 
                  (select count(*) from table2 
                   where column3 > 10
                   and column4 = table1.column5)) as column6
from table1, join table2 using (column7) 
  left outer join
     (select sum(column8) as column2, column9
      from table3
      group by column10) as foo using(column9)
where ((column11 + (column2 - 
                      (select count(*) from table4
                       where column12 > 100
                       and column13 = column5))
       ) > 0) and column14 ~* '$keyword'

みたいな長いSQLを使ってたんだけど、それをInnoDB型のMySQL4.1に移して実行。
そうするとPostgreSQLの2倍以上の時間がかかった。
なんだか苦労の割に報われないのでテーブル型をHEAPにして再度実行。
InnoDBに比べて半分にはなったけど、それでもPostgreSQLより遅い・・。


チューニングしてないのはどちらも同じだし、何だか非常にがっかり。


テーブル構造とSQLを変更したらもっと単純なものになるんだけど・・・そこまでして検証するんだったらPostgreSQLでさっさと作っちゃおうって気になるなぁ。


独自のコツとノウハウでより高速に動くDBより、教科書通りに動くDBの方が気楽。
ただ、簡単にレプリケーションをしたかったんだけど・・そっちはそっちで考えるか・・。