在以下方面需要您的帮助:
我有一个MongoDB集合,其中包含超过2600万个文档.文档的结构是不变的(pastebin.com/iBzW0Fkz)
该集合包括"用户"字段的索引
db.conversations.getIndexes();
Run Code Online (Sandbox Code Playgroud)
结果 - pastebin.com/xHecpw00
对字段"用户"的所有请求都执行得非常慢(超过100毫秒)
db.getCollection('conversations').find({users: {$all: ["5942328", "9082468"]}});
Run Code Online (Sandbox Code Playgroud)
说明 - pastebin.com/0C11Cr9F
db.getCollection('conversations').find({users: "9163099"});
Run Code Online (Sandbox Code Playgroud)
说明 - pastebin.com/CmvuDf10
问题清单:
这是一个额外的信息
db.stats();
Run Code Online (Sandbox Code Playgroud)
结果 - pastebin.com/9JZF8ChQ
db.getCollection('conversations').stats();
Run Code Online (Sandbox Code Playgroud)
结果 - pastebin.com/17yV4Fsi
db.conversations.getIndexes();
Run Code Online (Sandbox Code Playgroud)
结果 - pastebin.com/xHecpw00
有关服务器的信息:
lscpu - pastebin.com/k7wUE4gH
lshw -short - pastebin.com/w5XYuY3U
假设HDD的读取操作是瓶颈,SSD可能会解决此问题,但没有机会对其进行测试.
提前致谢.
您可能需要研究分片以将数据拆分到多个实例中,但请注意,您不能选择users
字段作为分片键
归档时间: |
|
查看次数: |
125 次 |
最近记录: |