我正在测试一个用于分片设置的小例子,我注意到在索引搜索字段时更新嵌入字段的速度会变慢。
我知道索引在插入期间会更新,但查询的搜索索引是否也会更新?
更新的查询和更新的字段与任何方式无关。
e.g。 (用玩具数据测试):
{
id:... (sharded on the id)
embedded :[{ 'a':..,'b':...,'c':.... (indexed on a,b,c),
data:.... (data is what gets updated)
},
...
]
}
在上面的示例中,更新的查询位于a,b,c 并且更新的值仅影响数据。
我能想到的唯一原因是即使更新不在索引字段上,索引也会更新。更新的搜索部分似乎在使用explain发布“查找”查询时使用索引。
还有其他原因吗?
答案 0 :(得分:0)
我认为wdberkeley - 评论 - 给出了最好的解释。 文档移动是因为它变大了并且索引每次都更新。 正如他还指出的那样,更新多个键是“糟糕的”....我认为我现在会避免这种设计。