MongoDB 集合大小性能 / 更多集合 vs 更多文档

MongoDB 集合大小性能 / 更多集合 vs 更多文档

有人知道 mongodb 的性能吗?我已经使用 mysql 多年了,我想确定是拥有更多集合还是更多文档(指非常大量的数据)更理想 - 在 MySQL 中,拥有更多行比容纳更多表更理想。

例如,我们可以有两张包含顾客的酒店表(集合),或者一张包含酒店的附加列的表/集合。

也许它可能更优化,因为它使得磁盘上的集合大小更小(通过两个集合而不是一个),因此查询速度更快?

答案1

注意:不要忘记 mongodb 对文档大小有限制,我认为是 16mb,但你需要查看文档

mongodb 的全部要点是以非规范化的方式存储您的数据,并避免“连接”,但如果您的数据完全独立,则仍应将其存储在单独的集合中。

在我们的网站上,我们有几个不同的集合,其中一个是通过引用链接的。驱动程序是否能为您解析引用取决于您使用的驱动程序。

要考虑的另一件事是如何更新数据。

MongoDB 将整个集合映射到内存中,并允许您的操作系统确定哪些部分应分页到磁盘,哪些部分的数据应存储在内存中。如果整个数据集的大小相同,则 1 个大型表和 2 个中型表之间的性能差异应该不大。这里要考虑的是索引,如果您将数据合并到一个集合中,并且索引可以覆盖所有内容,那么您可能能够更快地查找数据。

因此,您可以为每家酒店创建一个集合,其中包含一个名为“customers”的属性,该属性是包含每个客户详细信息的数组或哈希值,您可以从该数组中推送和提取项目(或者您可以将其设为唯一客户标识符的哈希值,以便于访问)。不过,不要忘记 16mb 的限制。

如果我有更多的背景信息和细节,比如你试图存储什么,以及你需要对数据运行什么样的查询,那么回答你的问题可能会更容易

相关内容