2011-08-29 7 views
1

モンゴイドクエリは高速です。たとえば、300個のドキュメントを返すクエリの場合、約10ミリ秒かかりますが、実行するとモンゴイドクエリは高速ですが、結果に変換するには時間がかかります

to_aになるか、結果が得られるまでに時間がかかります。

タイムラグを短縮する他の方法はありますか?

+0

'to_a'の代わりに' each'を使うことができます。これは、基礎となるmogodbカーソルを使用して一度に1つのオブジェクトを割り当てます。これは、おおよそのメモリフットプリントを使用すると評価されます。それは物事をスピードアップするかどうかは分かりませんが。 – rubish

答えて

2

私はまだソースコードを見ていませんが、Mongoidクエリはlazily evaluatedです。

これは、条件の最初の呼び出しがデータベースに接触しないことを意味します。つまり、「to_a」または「entries」を実行したときにMongoidが実際にデータを取得するため、タイムラグが発生します。

関連する問題