railsプラグインのscgooge、、、凄いかも
簡単に説明すると
# # テストテーブル # Post # name # data(ちょい重データ) # created_at # updated_at # # 例えばコントローラーで以下のコードを実行した場合 Post.all.each do |post| puts post.name end
Post Columns (1.8ms) SHOW FIELDS FROM `posts` Post Load Scrooged (0.8ms) SELECT `posts`.`id` FROM `posts` Post Scrooge Reload (1.1ms) SELECT `posts`.`name`,`posts`.`data`,`posts`.`created_at`,`posts`.`updated_at`,`posts`.`id` FROM `posts` WHERE `posts`.id IN ('1','2')
二回目以降は
Post Columns (4.8ms) SHOW FIELDS FROM `posts` Post Load Scrooged (0.7ms) SELECT `posts`.`name`,`posts`.`id` FROM `posts`
な感じのSQLが発行されることになります。言うまでもないですが重要なのはdataカラムをselectしなくなっているところですよ!!(developmentな環境でテストしたのでSHOW FIELDSは共に発行してますね)
詳しくは以下の動画の3/5ぐらいから(眺めているだけで十分理解できます)
http://nr-content.s3.amazonaws.com/railslab/videos/19-ScalingRails-On-The-Edge-part-1.mp4
このプラグインを入れておけば、railsでざくーっとコーディングするのと比べてmysqlとの通信量がかなり節約できるんではないかなぁと、、すばらしいプラグインです!!。ぜひ標準にして欲しい。
どちらにせよ「ちょい重」ではなく「げろ重」データだと、、、:selectオプションを使ってちゃんと書きましょうってことにはなります。気をつけてくださいw