先描述业务场景,10万条数据左右,查询居然要10几秒,百思不得解,为啥?单独执行sql语句都是毫秒级别的。一路分析下去直到ReuseExecutor源码中才发现,是执行sql语句时候很慢,那么问题来了,sql语句没问题啊,想起了Mybatis的分页拦截和插件的分装类于是找到了PagePlugin的类,我这是这样命名的。其中有句代码如下
原语法这样写 select count(0) from (" + fhsql+ ") tmp_count 不是坑爹么,这谁封装的,先查询所有数据在套子查询查数量。果断改写
将sql这样封装一下,就是select count(1) from 计算总量的sql了,效率提高的百倍,查询时间从10几秒到0.022s.