我有一个包含5亿条记录的集合。每秒平均插入100个文档。它有一个日期时间索引字段,大小约为5GB。
"created" : ISODate("2020-01-01T12:48:51.671Z")
所以,问题是——如果我创建按分钟取整日期时间的值字段,它会为这个索引使用更少的存储空间吗?
我的意思是,每个记录都会有带值的字段,例如:
"created" : ISODate("2020-01-01T12:48:00Z")
更新:
我收集了大约2000万份文档进行了测试。结果:
"_id_" : 221757440,
"created" : 210997248,
"created_rounded" : 97366016
快速回答,是!
mongoDb中Date的格式是恒定的,无论你想放入多少数据。分配的内存不会改变。
BSON日期是一个64位整数,表示自Unix epoch(1970年1月1日(以来的毫秒数。
更新:
索引类似于{key1:[value1,value2]}。然后,如果您对您提到的日期字段进行四舍五入,它将创建更少的key
,最终,您的答案是是。