批量删除用户,传过来的是一个integer[] ids,长度0~100万不定,当数据量大的时候删除太慢或者删除不了,现在想每次删1000条,时间长点可以接受,想知道怎么每次从ids取1000条,或者其他有更好的方案也可以,删除用户需要删除关联的东西太多,不能直接用sql in来删
11条回答
- roc168 2018-03-09 02:38关注
参考如下示例代码:
package com.example.test; import java.util.Arrays; public class Test { public static void main(String[] args) { int maxRange = 2600; int[] ids = new int[maxRange]; for (int i = 0; i < maxRange; i++) { ids[i] = i; } int PER_QUERY_COUNT = 1000; //每次查询数量 int from = 0; //起始索引 int to = PER_QUERY_COUNT; //结束索引 for (int j = 0; j < ids.length; j += PER_QUERY_COUNT) { //将一个原始的数组original,从小标from开始复制,复制到小标to,生成一个新的数组。 // 注意这里包括下标from,不包括下标to。 System.out.println("from=" + from + ",to=" + to); int[] temp = Arrays.copyOfRange(ids, from, to); for (int id : temp) { System.out.print(id + ","); } from += PER_QUERY_COUNT; to += PER_QUERY_COUNT; if (to > ids.length) { to = ids.length; } System.out.println("\r"); } } }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决评论 打赏 举报无用 1
悬赏问题
- ¥15 素材场景中光线烘焙后灯光失效
- ¥15 请教一下各位,为什么我这个没有实现模拟点击
- ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
- ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
- ¥20 有关区间dp的问题求解
- ¥15 多电路系统共用电源的串扰问题
- ¥15 slam rangenet++配置
- ¥15 有没有研究水声通信方面的帮我改俩matlab代码
- ¥15 ubuntu子系统密码忘记
- ¥15 保护模式-系统加载-段寄存器