Skip to content

SQL自动优化

SQL优化说明

mybatis-mp 会对sql进行自动优化,主要是对 left join,order by优化
left join 最好是1对1的关系,否则需要自己关闭JOIN SQL优化,否则会导致count不准

查询SQL优化

去除无用left join

count SQL优化

去除无用left join (自动判断是否有效)

去除无用的order by (自动判断是否有效)

优化union 查询 (优化 left join 和 order by,自动判断是否有效)

如果如何关闭 SQL优化?

目前有2个开关,1个是 join 优化开关 1个是 orderBy 优化开关;具体 看 optimizeOptions 方法;也可以直接关闭全部 disableAll

java
Pager<SysUser> pager=QueryChain.of(sysUserMapper)
    .like(SysUser::getUserName,'abc')
    //方式1:指定部位是否优化    
    .optimizeOptions(optimizeOptions -> optimizeOptions.optimizeJoin(false).optimizeOrderBy(false))
    //方式2:全部禁止    
    .optimizeOptions(optimizeOptions -> optimizeOptions.disableAll())
    .paging(Pager.of(1));