我的笔记本电脑(i7、SSD、16GB RAM)上运行了三个 mongod 进程的复制集。我创建了一个空数据库并向其中添加了一条 7MB 的记录。然后我从命令行查询该记录:
echo "db.items.find({_id:'.......'})" | mongo mydb >tmp/junk
客户端应用程序“mongo”(不是 mongod 或 mongos)在吐出响应之前会占用 100% CPU 几秒钟。如果我使用 MongoDB 的 Java 客户端读取记录,我的 JVM 进程会在几秒钟内使用 100% CPU,然后再给出响应。
这里会发生什么?我该如何解决这个问题?
更新:复制集似乎无关紧要;如果我将 mongo 直接连接到主 mongod,性能是一样的。
更新:PHP 客户端可以在几分之一秒内获取数据。世界卫生大会...?