gpt4 book ai didi

mongodb - Mongodb 按 DateTime 查询记录是否比按 String 更快?

转载 作者:可可西里 更新时间:2023-11-01 10:22:02 25 4
gpt4 key购买 nike

例如,这是一条记录:

 { 
"_id" : ObjectId("576bc7a48114a14b47920d60"),
"id" : "TEST0001",
"testTime" : ISODate("2016-06-23T11:28:06.529+0000")
}

testTime是ISODate,Mongodb按testTime查询记录会比这个快吗? :

{ 
"_id" : ObjectId("576bc7a48114a14b47920d60"),
"id" : "TEST0001",
"testTime" : "2016-06-23 11:28:06"
}

最佳答案

是的。

不同之处在于日期对象在 dateTime 对象中存储为数字。

要理解这一点,我们可以使用这个插图:

当对dateTime 进行查询并且dateTime 存储在数字对象中时,这意味着我们对数字进行了比较。 Mongo 将比较大小为 64 位(8 字节)的对象 see here与相同的对象。

当比较字符串时,mongo 会像这样加载字符串:2016-06-27T08:39:44.000 这是 23 chars*2bytes (utf) => 46 字节要在内存中进行比较,需要检查从最高位到最低位的所有字节..

现在,您知道为什么使用 dateObject 而不是 string 更快的答案了。

欢迎任何评论!

link here

Comparison/Sort Order

  1. MinKey(内部类型)
  2. 数字(整数、长整数、 double )
  3. 符号、字符串
  4. 对象
  5. 数组
  6. 二进制数据
  7. 对象编号
  8. bool 值
  9. 日期
  10. 时间戳
  11. 常规
  12. 表达
  13. MaxKey(内部类型)

关于mongodb - Mongodb 按 DateTime 查询记录是否比按 String 更快?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38048124/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com