面试题答案
一键面试单文档查询
- 可能影响:在变更分片键后,如果单文档查询仍然使用旧分片键相关条件,查询性能可能严重下降。若使用新分片键相关条件查询,性能可能提升或保持稳定,具体取决于新分片键分布及索引情况。
- 原因:MongoDB基于分片键将数据分布在不同分片上。变更分片键前,数据按旧分片键分布,查询可快速定位到相应分片。变更后,数据分布改变,基于旧分片键查询可能需在多个分片遍历数据;若按新分片键查询,若新分片键分布合理且有合适索引,查询可精准定位到相关分片,提升查询效率。
范围查询
- 可能影响:变更分片键后,若范围查询条件基于旧分片键,性能会下降;基于新分片键且分布合理,性能或提升。但新分片键分布不均,可能致部分分片负载高,影响范围查询性能。
- 原因:变更前,范围查询基于旧分片键分布执行,能利用原有数据分布及索引优化。变更后,数据分布变化,基于旧分片键范围查询需跨更多分片获取数据,增加网络及处理开销。基于新分片键查询,若分布均匀,查询可高效并行在各分片执行;若分布不均,热点分片会成性能瓶颈。