railsプラグインのscgooge、、、凄いかも

簡単に説明すると

#
# テストテーブル
# Post
#   name
#   data(ちょい重データ)
#   created_at
#   updated_at
#

# 例えばコントローラーで以下のコードを実行した場合
Post.all.each do |post|
  puts post.name
end

初めてのリクエストで以下のSQLが発行

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