速度
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の方が気楽。
ただ、簡単にレプリケーションをしたかったんだけど・・そっちはそっちで考えるか・・。