Tuesday 7 July 2009

SQL 絶賛

どうせ、どんな言語を使っても十分な表現力があれば何でも出来るので、どれか一つが出来れば良いってのは、その通り。

http://el.jibun.atmarkit.co.jp/g1sys/2009/06/post-e664.html
SQLについては会話のペースでパフォーマンスを予想するぐらいできなくては

でも、SQL万能ってのはどうかな〜

http://codezine.jp/article/detail/652
HAVING句で自己結合:メジアンを求める

とかを見ると、「SQLなんて本当に簡単なものですから、2日も勉強すれば...」ってわけにもいかないかとは思います。

特に、Group by, Having + sub query で、実際のパフォーマンスを予測するとかって「実験してみないとわからん」レベルだと思う。O(n^2) になったら警告出してくれるとかだったら良いんだが。

集合演算なら、 ∀x∃y p(x,y)∧q(x) みたいな記述の方が select (*) as ... having みたいなのより自然だと思う。まぁ、嫌う人は嫌うんだろうけど。

そのあたりが、最近の key-value store の見直しにも繋がっているのかも。Twitter の性能の悪さを SQL/RDB あるいは Ruby on Rails のせいと言う人もいるが、実際の実装を見ないと良くはわからない。ただ単に性能が良いからという理由でユーザが移動するとも思えないし。

No comments: