springboot(二十二) 记一次mybatis+springboot分页缓慢问题解决

情形:

    在一次调试中,发现了一个bug,就是有三个大数据量的表进行关联查询后分页,一个表60万,一个表40万,一个表20万,发现前端50页查询速度很快,但是当查询到5000页的时候,特别慢,需要两分钟。

数据库:sql server

sql分页语句:

offset #{offset} row fetch next #{pageSize} row only

项目架构:springboot+mybatis

解决:

将#{offset}和#{page}换成

offset 49900 row fetch next 10 row only

,测试,发现执行速度很快,大约需要20ms,果断替换为

offset ${offset} row fetch next ${pageSize} row only

注意:为了防止sql注入,需要其进行严格的校验。

原因

猜测是mybatis对于sql自主的优化出现的问题,可能是一个不好的优化,并未去看源码,等待有时间再研究。

你可能感兴趣的:(springboot,sql(mysql),mybatis,java)