实战避坑|从根源解决 MySQL/PG 迁移 KES LEFT JOIN 数据异常问题
原文摘录:目录 前言 一、现场现象:迁移后 LEFT JOIN 查询诡异丢数据 1.沿用源库的错误 SQL 写法 业务预期结果 KES 实际运行结果 执行计划真实佐证 二、底层原理:为什么 KES 会改写 LEFT JOIN 为内连接?1 SQL 执行顺序导致的隐性过滤 2.2 KES 优化器的性能优化逻辑 三、特殊豁免场景:不会触发外连接消除的情况 安全无坑示例 SQL 核心内核逻辑 四、KES 迁移实战避坑方案 方案一:右表过滤条件全部下移至 ON 子句(通用最优解) 方案二:Oracle(+) 兼容语法专属处理方式 方案三:左表 WHERE 过滤无任何丢数据风险 方案四:通过执行计划快速排查隐患 SQL 五、迁移落地总结与团队开发规范