1. 开发背景
业务代码做数据迁移,A表数据量为3亿左右,迁移至一张新表
2. 业务代码
每次分页查询出10000条数据,做简单处理后,批量插入新表。逻辑比较简单
方案1,计算出总条数,然后计算总页数,用页码进行循环
select * from A order by id asc limit pageNumber,pageSize.
pageNumber从0开始增加。
后来从日志发现,速度越来越慢,
了解到,pageNumer越来越大会导致查询速度越来越慢
方案2,
select * from A limit pageNumber,pageSize where id > tempMaxId order by id asc limit 0,pageSize.
tempMaxId每次拿到临时最大id,加上这个条件,每次pageNumber取0即可,结束条件为查询的数据为空即可