Hatena::Groupsubtech

#生存戦略 、それは

-> 12 { 03 / 28 }

activerecord-raw-data というライブラリを書いた

08:47 | はてなブックマーク - activerecord-raw-data というライブラリを書いた - #生存戦略 、それは

ActiveRecord を使うと生データを結果として取得するAPIが無くて、結果が別に AR オブジェクトじゃなくて良い場合だとコストが高い。数十万個のデータを取り出すときなんかはわりと無視できない速度になるので、生でとれるライブラリ書いた(たいしたことはしてない)。

User.raw_data #=> [{"id" => 1, "name" => "alice"}, {"id" => 2, "name" => "bob"}, ...]
User.raw_rows #=> [[1, "alice"], [2, "bob"], ...]
User.select(:name).raw_values #=> ["alice", "bob", ...]

みたいに使える。AR 3.2 からは pluck で1カラムの値は取り出せるんだけど、型キャストをきちんとしてるので、そうでもなく適当に取り出したいときは raw_values を使う。

トラックバック - http://subtech.g.hatena.ne.jp/secondlife/20120328