相信大部分人都会遇到:在数据库的数据量很大时,分页需要几秒钟才会全部完成;包括分页list的获取和count的获取。
那我们完全可以将这两步放到一次sql去执行获取,减少一半的查询时间。
这里get到sql_calc_found_rows和SELECT FOUND_ROWS()这两个知识点。
看代码:
select SQL_CALC_FOUND_ROWS
col_name1 as colName1,
col_name2 as colName2
from table_name limit 0,10;
select FOUND_ROWS() as count;
在SELECT语句中加上修饰SQL_CALC_FOUND_ROWS 之后,SELECT FOUND_ROWS() 会返回满足条件记录的总数。
这样,你执行完 select SQL_CALC_FOUND_ROWS 之后,再取一下记录总数就行了。
现在,你会获取到如下数据:
看到没有,两个结果:第一个是分页list,第二个是总数count。接下来怎么办?
接下来我们就将相关代码放到JAVA中,可是我们会发现:在数据库中能够成功执行语句,但是放到代码中却会报错。
原来,mybatis在我们使用链接连接数据库时,需要我们手动在连接上加上代码: