クエリのコストとか

気になった。

第35回PHP勉強会に参加してきた

あとは、質疑応答であった、複数SQLが流れるという話について。

DBに複数のクエリを投げてしまうのって実際にはどうなんだろうか?Webが複数台になるような場合、DBサーバ側に負荷が高くなってしまうのではないかと思った。

MySQLの場合、変にJOINするよりは、複数クエリを投げたほうが早いという話も出てきた。


実際に話を聞きながら思ったのは、
MySQLの場合、SQLクエリの内容が同じものであれば、
もしデータの更新がなければ、結果セットはDBサーバでキャッシュされている、
と考えることができるのかな、と。
(ってかその前にローカルでキャッシュしろと)

つまり、
内容がちょっとずつ異なるJOINのSQLクエリを使用するよりは、
"SELECT * FROM hoges WHERE id = ?" といった頻出度の高いSQLクエリを使用するほうが、
トータルコストは少なくて済む、といったケースも多いんじゃないかと思う。

ただ、CakePHPのbindModel、unbindModel はキャッシュの利用方法がどうも不可視な印象がある。
(単にソースを見れよという話もあるけど)