如果我的mongodb文档太大,该怎么办?查询速度太慢了。
答案 0 :(得分:0)
您可以使用分片在多台计算机上分布数据,这将提高大型数据集的读写性能。
请参阅MongoDB的官方文档以获取有关分片的更多帮助。
答案 1 :(得分:0)
通常来说,大型文档是NoSQL中的反模式,因为当应用程序实际上只需要文档中一小部分数据时,它们会迫使系统读取和写入大量数据。最佳实践是创建大小合理的项目,并使用索引对其进行查询。
一个示例可能是为客户,订单和发票创建项目,然后用CustomerId和OrderId标记所有这些项目。在这两个属性上创建一个复合索引,现在您可以有效地查询客户已下的所有订单以及这些订单的发票。
在上面的示例中,为包含所有订单的客户创建单个项目将导致系统在每次下订单或更新订单时读取和写入客户的整个订单历史记录。
所有这些,如果您确实需要查询大于16MB的巨大Blob,则只需将它们与tag属性链接在一起并对该属性进行索引。创建一个名为BlobId的标签,对其进行索引,然后查询具有相同BlobId的所有项目。