警惕!分布式下Nest Loop Join可能让你多等900倍

NLJ在单机TP场景很香,能利用索引快速查找。但在分布式环境下有个大坑:跨机Rescan

比如左表输出900行,右表在另一个节点,NLJ会发起900次远程RPC ,性能直接差两个数量级。

怎么办

  1. 尽量让JOIN键=分区键,避免跨机
  2. 查看计划是否触发了Batch Rescan (批量合并RPC)
  3. 如果跨机不可避免,考虑USE_HJ 强制走Hash Join

【标签】 #Nest Loop Join #分布式 #性能调优

5 个赞

谢谢分享,学习了

3 个赞

学到了

3 个赞

学习学习

3 个赞
  • 执行计划检查:始终通过 EXPLAIN 命令查看 SQL 的执行计划,确认连接类型、数据分布和是否使用了 Batch Rescan。
  • 数据分布设计:在表设计阶段就应充分考虑查询模式,合理选择分区键,从架构层面避免分布式连接的性能问题。
3 个赞

学到了

2 个赞

给力哦

2 个赞

给你点赞

1 个赞