mongodb の find() と mapreduce
mngodb で あるデータ(290万件から 10 数件) を検索するのを
find() と mapreduce で行ってみた。
find()
======
real 0m14.686s
user 0m0.960s
sys 0m0.221s
mapreduce
==========
real 1m17.705s
user 0m0.967s
sys 0m0.222s
この速度差は妥当なのか?
find のコード
--------------
pat = /zzz/
coll.find( { 'val' => zzz } ).each { |d|
pp d['zzz']
}
mapreduce のコード
-----------------
map = "function() { " +
"if (/zzz/.test(this['val'])) emit(this, 0);" +
"}"
reduce = "function(key, values) { " +
"return 0; " +
"};"
result = coll.map_reduce(map, reduce)
result.find.to_a.each do |r|
pp r
end
« ピックアップ:Twitterのアートディレクター「新デザインは『黄金比』で造られている」, MP3再生が可能なスピーカー内蔵Tシャツ, etc... | トップページ | ピックアップ:2010年イグ・ノーベル賞の論文いくつか, ビートたけし語録にくらべて松本人志語録のうっすいこと, etc... »
この記事へのコメントは終了しました。
« ピックアップ:Twitterのアートディレクター「新デザインは『黄金比』で造られている」, MP3再生が可能なスピーカー内蔵Tシャツ, etc... | トップページ | ピックアップ:2010年イグ・ノーベル賞の論文いくつか, ビートたけし語録にくらべて松本人志語録のうっすいこと, etc... »
コメント