我想知道是否有人对诸如mongodb或elasticsearch之类的文档存储数据库中的JSON键大小具有速度或优化效果方面的经验。
例如:我有2个文档
doc1: { keeeeeey1: 'abc', keeeeeeey2: 'xyz')
doc2: { k1: 'abc', k2: 'xyz')
假设我有1000万条记录,那么以doc1格式存储数据意味着比在doc2中存储更多的db文件大小。
除此之外,在速度,RAM或任何其他优化方面是否会带来不利或负面影响?
最佳答案
您正确地注意到文档将具有不同的大小。因此,如果您决定采用第二种模式,则每个文档至少要保存15 bytes
(类似文档为60%
)。最终,您的140MB
记录将以10 million
之类的形式出现。这将为您带来以下优势:
140MB
,还可以保存潜在RAM空间的140MB
(实际上是值得注意的)。 twice as many documents
。 在介绍了优点之后,我必须告诉您使用小键的缺点:
db.coll.findOne()
并看到{_id: 1, t: 13423, a: 3, b:0.2}
时,很难理解确切存储在此处的内容。 currentDate
转换为c
和price
转换为p
的映射逻辑,您可以编写干净的代码并具有简短的模式。 关于json - JSON文档数据库中的键成本(mongodb,elasticsearch),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28492785/