2011-02-11 17 views
1

MongoDBに日付を格納する方法について議論しています。私はモンゴにまだかなり新しいので、私が見たときにドキュメント(http://api.mongodb.org/perl/MongoDB/DataTypes.html#Dates)私は不思議に、以下:MongoDBでのDateTimeのパフォーマンスへの影響

警告: DateTimeオブジェクトの作成は、極端に遅い です。日付として を保存し、必要に応じて数字 をDateTimesに変換することを検討してください。 1つの DateTimeフィールドを使用すると、 の逆シリアル化を最大10倍遅くすることができます。

店舗内のオブジェクトに関するクエリを保存するだけであれば、それは1つのことですが、フィルタリングや並べ替えが別のものだと思われます。問題は、数値からDateTimeへのキャストです。パフォーマンス上の考慮事項についてのいかなる考えも歓迎します。ありがとう。

+0

FWIWは、MongoDBインスタンスにC#/ .Netを介してアクセスしています(これが有効な場合)。 – BobC

答えて

6

内部的にdatetimeとlongの両方は、bsonspec http://bsonspec.org/#/specificationごとに64ビットの整数として格納されます。したがって、サーバの観点からのキャストのために追加のペナルティペナルティはありません。問題はPerlでのDateTimeの遅さです。 注:datetimeまたはlongを一貫して使用すると、他のものと一致しなくなります。

この会話の他の場所で言及
+1

これは正しい答えです。問題はPerlがBSON Dateオブジェクトを変換するのが遅いということです。一般的にMongoDBは遅いです。 –

+0

私は、C#で.Netドライバを使って店にアクセスしているという事実が、疑問を浮かべているということを意味していますか? :-) どうもありがとう! – BobC

4

が、それは合計価値がある:

問題のパフォーマンスの問題は、純粋にPerlの問題であり、PerlでDateTimeオブジェクトを作成するコストに関係しています。一般的にMongoDBのパフォーマンスやPerl以外の言語用のMongoDBドライバとは何の関係もありません。 C#ドライバでは、DateTimesのパフォーマンスに問題はありません。

関連する問題