默认情况下,MongoDB在文档中的_id键上创建索引.但是当我确保额外的索引(像来自MySQL的InnoDB中的辅助索引?)并查询它之后,引擎会扫描它然后选择性扫描_id索引来获取文档补偿吗?
我很困惑,因为当分片到来时我是对的,每个块都有自己的索引,每个查询会有很多随机读取?
每个分片都有自己的索引(只包含此分片中的文档),它们将被并行访问(每个分片读取自己的本地索引分片)并合并结果.这不是随机读取,而是多个并行索引读取.从单个分片的角度来看,这看起来就像普通的索引访问.
此索引分片也是二级索引在分片环境中不可能唯一的原因(没有单个全局索引可以确保唯一性).