我们有一个大型数据库,我想解释一下我们如何设置基础。所以,如果你不是我们,我想知道你的建筑是什么。
现在我们遇到了一些问题,尤其是I / O速度问题。插入性能令人满意,但更新和查询性能很差。一些查询将在3M文件的集合上进行,这解释了为什么它很差。
所以我们正在寻找一个解决方案。您有什么建议,让我们知道什么是更有效的架构。请在您的建议中考虑预算。我们都知道10个独立的SSD服务器将是一个很好的解决方案。 我们目前的选择是:
任何建议,我们的错误提醒和提示都会很棒。
========================
回答吗
索引!索引中的错误是关键问题。我们修改了所有索引键并解决了所有问题。现在RAM使用率为100%,性能非常出色。我们听到了索引,我们说它没问题!但是,需要更多关注。
答案 0 :(得分:1)
我从未在Windows上使用MongoDB,但我会改变两件事:
在Linux系统上只使用4GB的RAM会很奇怪,但我不了解Windows。
我认为分片不是一个好主意,并且在同一个数据库中使用2600个集合会有点复杂。如果你要对它进行读取,副本集可能是一个解决方案。
另一种选择是将2600个集合拆分为多个数据库,以获得每个数据库的写锁定。