最近碰到了一个生产问题.
经过分析,发现一次请求调用,执行了很多次的SQL查询.
是因为在mybatis中用了嵌套查询的写法,照成了该问题.
原因是返回的数据要求格式如下
class A{
XXX a1
xxxx a2
List list
}
开发人员就先查询出满足的a1和a2记录,然后为了省事,在mybatis中写返回值的resutlMap的时候,
就用了嵌套查询
</>
这种写法在a1 a2返回记录数不多的时候没有问题,但是数据量一大,就照成有多少行记录,就要执行多少次SQL,要慎用这种情况.在外层要对a1 a2的返回记录数做Limit n.
不能用于全量导出这种没有Limit的场景.