Mybatis N+1问题解析
因为热爱,所以拼搏。 –RuiDer
前导必备
- Mybatis
- 数据库
- 级联
N+1问题??
N+1问题来源于数据库中常见的级联技术,即N个数据库表形成关联关系,当再增加一个关联表时,也就是N+1个级联关系,由于某些时候,我们并不需要加载数据库的所有数据,而是某一个数据库表中数据,这时Mybatis会自动加载所有表的数据,多执行几条无关sql语句,会造成数据库资源的浪费以及系统性能的下降,这就是级联表的缺点。
如何解决N+1问题
Mybatis本身给出解决方案,就是延迟加载。
延迟加载
延迟加载会解决上述的N+1问题,也就是在N+1个级联表的情况下,只加载需求的数据库表数据。这是互联网发展的需求,性能提升的途径。
如何配置Mybatis完成延迟加载
全局配置:
- lazyLoadingEn