记录一次MybatisPlus 千万条数据分页优化

使用mysql 执行计划

EXPLAIN SELECT
	COUNT( 1 ) 
FROM
	(
查询表和条件
	) TOTAL
1	SIMPLE	tb_humidity		ALL					10998200	100.00	
1	SIMPLE	ca		eq_ref	PRIMARY	PRIMARY	8	cold.tb_humidity.car_id	1	100.00	Using index
1	SIMPLE	w		eq_ref	WeChatUser_ID	WeChatUser_ID	8	cold.tb_humidity.wechat_id	1	100.00	Using index

在这里插入图片描述
获取当前查询总条数,这样比直接count表速度快

 List> mapList = baseMapper.callSize(params);
        String str=mapList.get(0).get("rows").toString();
        page.setTotal(Integer.parseInt(str));
        page.setSearchCount(false);

第一条就是解析执行条件的结果
分页总条数手动注入
分页总查询开关 false

你可能感兴趣的:(mysql)