数据量大查询效率优化的疑惑

cobbage · 昨天 23:35 · 206 次点击

select * from a left join c left join b on a.bcode=b.code where b.xxid in(1,2,3);

a 表数据量比较大,实际数据有三张大表这样 union all

我是这样优化的(因为前端传的是 xxid,我吧 xxid 先转 bcode 查出来直接塞到条件里 效率确实提高了。)

select * from a left join c left join b on a.bcode=b.code where a.bcode in(11,22,33);

b 表的量在 1k 多有( code xxid 都建了索引的),a 表百万到千万;

查询内容不变为什么这样优化后数据效率会提高

举报· 206 次点击
登录 注册 站外分享
1 条回复  
sagaxu 初学 2 小时前
看实际执行计划 EXPLAIN ANALYZE ,对比两者区别。 DB 查询优化器,一般基于统计数据做预估,经常失真选择错误的执行路径或者选错索引。
返回顶部