使用 JDBC 循环访问大型表的最快方法
我正在尝试创建一个java程序来清理和合并表中的行。该表很大,大约有 500k 行,而我当前的解决方案运行速度非常慢。我要做的第一件事是简单地获取一个内存中的对象数组,这些对象表示表的所有行。以下是我正在做的事情:
- 选择一次 1000 行的增量
- 使用 JDBC 在以下 SQL 查询 SELECT * FROM TABLE 上获取结果集,其中 ID > 0,ID < 1000
- 将生成的数据添加到内存中数组
- 继续查询,每次添加结果时,以 1000 为增量,一直到 500,000。
这需要很长时间。事实上,它甚至没有超过从1000到2000的第二个增量。查询需要永远才能完成(尽管当我直接通过MySQL浏览器运行同样的事情时,它的速度相当快)。自从我直接使用JDBC以来已经有一段时间了。有没有更快的替代方案?