MYSQL深度分页

今天做的需求,要取一个玩家角色表新建的角色id。新建的数据可能大批量。做功能的时候没有考虑性内存问题直接一次性全查了,但是该表数据可能很大,全查会很耗性能所以采用了循环分页查500条
,采用max id 每次去走主键索引增加查询效率避免深度分页问题 记录下 嘿嘿

int maxId=0;
do{
temp=SELECT * FROM report_create_role_online_time
 WHERE 1=1 and create_time>'xx' and id>maxId order by id asc LIMIT 500 //获取数据集
 list.addll(temp);
 int maxId= list.get(list.size-1).getId;
 }WHILE(temp.size!=0);

根据 maxid查询符合条件数据先获取前面500条,在获取数据集里的最后一个id 也就是id=500因为排好序了,或许下一个500条,有了主键索引避免了深度分页。直到查不到数据跳出循环

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值