面试题答案
一键面试更新操作在分片集群上的执行方式
- 查询阶段:当执行更新操作时,MongoDB首先根据查询条件确定需要更新的文档所在的分片。MongoDB通过分片键来定位文档,查询请求会发送到相关的分片。
- 更新执行:在确定的分片上,MongoDB会按照常规的更新逻辑执行更新操作。如果更新操作涉及到索引,还会相应地更新索引。
对分片键的要求
- 唯一性:分片键应该在集合中具有足够的唯一性,以确保数据均匀分布在各个分片上。如果分片键值重复度过高,可能导致数据倾斜,部分分片负载过重。
- 基数:具有较高的基数,即不同的分片键值数量较多,这样能更好地实现数据的均匀分布。
- 不可变:尽量避免更新分片键的值。因为更新分片键值可能需要将文档移动到不同的分片,这会带来较高的性能开销。如果确实需要更新分片键值,通常建议删除旧文档并插入新文档。