diff --git a/script/micro_bench.rb b/script/micro_bench.rb new file mode 100644 index 000000000..b7caadf01 --- /dev/null +++ b/script/micro_bench.rb @@ -0,0 +1,27 @@ +require 'benchmark/ips' +require File.expand_path("../../config/environment", __FILE__) + +conn = ActiveRecord::Base.connection.raw_connection + +Benchmark.ips do |b| + b.report("simple") do + User.first.name + end + + b.report("simple with select") do + User.select("name").first.name + end + + b.report("pluck with first") do + User.pluck(:name).first + end + + b.report("pluck with limit") do + User.limit(1).pluck(:name).first + end + + b.report("raw") do + conn.exec("SELECT name FROM users LIMIT 1").getvalue(0,0) + end +end +