北海道苫小牧市出身の初老PGが書くブログ

永遠のプログラマを夢見る、苫小牧市出身のおじさんのちらしの裏

O/Rマッピングとパフォーマンス

O/Rマッピングは想像以上にパフォーマンスに影響を及ぼします。特にClass::DBIは1テーブル1クラスなので、大量のクラスがhas_aやhas_many関連し合ってる時にたくさんのオブジェクトの情報を扱おうとすると、うまくSQLを作れば1度で済むSQLのリクエストを数百回も繰り返さなきゃいけない恐れが出てきます。

自前でキャッシュ*1を作ったり、複数テーブルをまとめたSQLをひとつ書いてconstructメソッドを利用したりしないと、きつそうですね(T_T)。

*1:オブジェクトのプーリング