在java中将批量数据提取到结果集中是否存在任何性能问题。
rs = st.executeQuery("SELECT * from ABC")
表ABC有大量数据(比如100万)
将数据迭代地提取为一次1000行的小块并对其进行操作时,性能的改进是什么。
答案 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讲述了你想要了解游标的内容。