在以下方面需要你的帮助:
我有一个MongoDB集合,其中包含超过2600万个文档。 文档的结构是不变的(pastebin.com/iBzW0Fkz)
该集合包含“用户”字段
的索引db.conversations.getIndexes();
结果 - pastebin.com/xHecpw00
对字段“用户”的所有请求都执行得非常慢(超过100毫秒)
db.getCollection('conversations').find({users: {$all: ["5942328", "9082468"]}});
EXPLAIN - pastebin.com/0C11Cr9F
db.getCollection('conversations').find({users: "9163099"});
EXPLAIN - pastebin.com/CmvuDf10
问题列表:
这是一个额外的信息
db.stats();
结果 - pastebin.com/9JZF8ChQ
db.getCollection('conversations').stats();
结果 - pastebin.com/17yV4Fsi
db.conversations.getIndexes();
结果 - pastebin.com/xHecpw00
有关服务器的信息:
lscpu - pastebin.com/k7wUE4gH
lshw -short - pastebin.com/w5XYuY3U
假设HDD的读取操作是瓶颈,SSD可能会解决此问题,但没有机会对其进行测试。
提前致谢。
答案 0 :(得分:0)
您可能需要查看分片以在多个实例之间分割数据,但请注意,您无法选择users
field as shard key