NLJ在单机TP场景很香,能利用索引快速查找。但在分布式环境下有个大坑:跨机Rescan 。
比如左表输出900行,右表在另一个节点,NLJ会发起900次远程RPC ,性能直接差两个数量级。
怎么办 :
- 尽量让JOIN键=分区键,避免跨机
- 查看计划是否触发了
Batch Rescan(批量合并RPC) - 如果跨机不可避免,考虑
USE_HJ强制走Hash Join
【标签】 #Nest Loop Join #分布式 #性能调优
NLJ在单机TP场景很香,能利用索引快速查找。但在分布式环境下有个大坑:跨机Rescan 。
比如左表输出900行,右表在另一个节点,NLJ会发起900次远程RPC ,性能直接差两个数量级。
怎么办 :
Batch Rescan (批量合并RPC)USE_HJ 强制走Hash Join【标签】 #Nest Loop Join #分布式 #性能调优
谢谢分享,学习了
学到了
学习学习
EXPLAIN 命令查看 SQL 的执行计划,确认连接类型、数据分布和是否使用了 Batch Rescan。学到了
给力哦
给你点赞