·原因一:反范式设计; ·原因二:读取效率低下; ·原因三:分布式环境;
MongoDB 里面连接 Join 操作只有左外连接,因为 Join 这种操作上是违反 MongoDB设计的初衷的,这样操作 经常要对两个表的不同数据进行连接操作,这些数据在 物理存储的时候,通常不是在相邻的区域里面,读取的 效率比较低。 此外 MongoDB 是一个分布式的环境,校验操作的左 右两边如果都是一个分片的表,当进行 Join 操作的时 候,左边有一个又有一条数据,它可能在分片一上要连 接的一个数据可能在分片二上,下一条数据可能又是另 外一种情况,这种情况下数据库很难保证整个操作的性 能。 基于这些原因,MongoDB 只提供左外连接,并且要求 From 表不能是分片表,左边的表主表可以是分片表, 在 SQL 里面会使用类似于左边这样的一个查询语句。
资源来源:电子书《玩转MongoDB从入门到实战》,下载链接:https://developer.aliyun.com/topic/download?id=1060
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。