【问题标题】:Storing DateTime in MongoDB effects on performance在 MongoDB 中存储 DateTime 对性能的影响
【发布时间】:2011-02-11 20:22:37
【问题描述】:

我们正在讨论在 MongoDB 中存储日期。我对 Mongo 还是很陌生,所以当我在文档 (http://api.mongodb.org/perl/MongoDB/DataTypes.html#Dates) 中看到以下内容时,我想知道:

警告:创建 DateTime 对象是 非常慢。考虑保存日期 作为数字并转换数字 需要时到 DateTimes。单 DateTime 字段可以使 反序列化速度最多慢 10 倍。

如果我们只是存储它们并让它们对存储中的对象进行查询,这是一回事,但如果我们对这些字段进行过滤或排序,似乎又是另一回事了。问题是从数字到日期时间的来回转换。欢迎任何关于性能考虑的想法。谢谢。

【问题讨论】:

  • FWIW,如果有影响,我们正在通过 C#/.Net 访问 MongoDB 实例。

标签: c# datetime mongodb


【解决方案1】:

在内部,datetime 和 long 都存储为每个 bsonspec http://bsonspec.org/#/specification 的 64 位整数。因此,从服务器的角度来看,不会因为演员阵容而产生额外的性能损失。问题在于 perl 中 DateTime 的缓慢性。 注意:使用 datetime 或 long 一致,因为一个不会匹配另一个。

【讨论】:

  • 这是正确的答案。问题是 Perl 转换 BSON Date 对象的速度很慢,而不是 MongoDB 通常对它们很慢。
  • 我认为这意味着我们通过 .Net 驱动程序使用 C# 访问商店这一事实使问题变得毫无意义? :-) 非常感谢!
【解决方案2】:

在本次对话的其他地方提到过,但值得总结:

所讨论的性能问题纯粹是 Perl 问题,与在 Perl 中创建 DateTime 对象的成本有关。它与 MongoDB 的一般性能或 Perl 以外的语言的 MongoDB 驱动程序没有任何关系。 C# 驱动程序应该没有 DateTimes 的性能问题。

【讨论】:

    猜你喜欢
    • 2016-11-11
    • 1970-01-01
    • 1970-01-01
    • 2022-08-07
    • 1970-01-01
    • 2013-09-20
    • 1970-01-01
    • 2013-08-30
    • 2021-03-09
    相关资源
    最近更新 更多