我有一台内存为1GB的MongoDB服务器。
我在数据库中只有一个集合,它有近1300000条记录,它在磁盘中的大小几乎是1GB。
现在我正在运行一个返回一条记录的查询,如下所示:
db.collection.find({"customer.name":"Scott"})
现在有一个客户名称= Scott的记录。所以这工作正常,并返回几毫秒的记录。
现在,如果我使用集合中不存在的其他名称运行相同的查询,则服务器将停止。
我猜(我可能错了)这是因为内存问题,DB正在尝试搜索整个集合,所有记录都存储在内存中并且崩溃了。
所以我的问题是: 实际问题是什么以及如何解决?
*我不想增加服务器内存。
*我在另一台只有500mb内存的Mysql服务器中使用相同的卷数据,它运行完美。
*我正在从直接推荐行运行查询。服务器有Ubuntu 14.4 OS