将批量数据提取到结果集中

时间:2014-02-12 09:39:26

标签: java sql jdbc

在java中将批量数据提取到结果集中是否存在任何性能问题。

rs = st.executeQuery("SELECT * from ABC")

表ABC有大量数据(比如100万)

将数据迭代地提取为一次1000行的小块并对其进行操作时,性能的改进是什么。

2 个答案:

答案 0 :(得分:0)

请仅使用mysql中数据限制的选定列,如:

rs = st.executeQuery("SELECT  columnname1,columnname2,.. from ABC 
                  LIMIT 10000, 30 ")

答案 1 :(得分:0)

在某种程度上,这取决于您要连接的数据库类型以及您正在使用的驱动程序。对于大型数据集,您应该使用:

Statement st = con.createStatement(ResultSet.TYPE_FORWARD_ONLY);
st.setFetchSize(<n>);

其中n是要获取的行数。

这将告诉司机不要一次性拉出所有数据。获取大小是一个提示,告诉驱动程序如果它为空则要提取多少。

一般来说,最好让jdbc驱动程序处理它,而不是自己尝试实现它。

这个Java Tutorial讲述了你想要了解游标的内容。