Mybatis分页插件很卡,查询效率低

先描述业务场景,10万条数据左右,查询居然要10几秒,百思不得解,为啥?单独执行sql语句都是毫秒级别的。一路分析下去直到ReuseExecutor源码中才发现,是执行sql语句时候很慢,那么问题来了,sql语句没问题啊,想起了Mybatis的分页拦截和插件的分装类于是找到了PagePlugin的类,我这是这样命名的。其中有句代码如下

Mybatis分页插件很卡,查询效率低_第1张图片

原语法这样写 select count(0) from (" + fhsql+ ") tmp_count 不是坑爹么,这谁封装的,先查询所有数据在套子查询查数量。果断改写

Mybatis分页插件很卡,查询效率低_第2张图片

将sql这样封装一下,就是select count(1) from 计算总量的sql了,效率提高的百倍,查询时间从10几秒到0.022s.

你可能感兴趣的:(sql语句优化)