【IT老齐022】阿里开发规范解读,为啥禁止三表Join关联?

165 阅读1分钟

配合视频效果更佳: www.itlaoqi.com/chapter.htm…

我收集的不同公司对join的要求

产品强制要求:

阿里OceanBase只允许2表关联MyCat只支持2表关联MySQL自身的设计缺陷

超过3表关联时MySQLSQL优化器做的不好。

NLJ多级嵌套性能差

贪心与动态规划算法计算量激增

商品与订单明细表2表关联产生耦合

在进行服务拆分时工作量巨大

多表关联对分库分表支持也不好

解决方案1::单SQL使用in进行关联

临时解决方案

适用于数据量小

只适用于inner ioin

解决方案2:构建反范式表

超大规模可以考虑构建数仓、数据中台

解决方案3:构建倒排表(倒排索引)