查询出数据,数据量有几十万条。要作一下处理,取出每条记录的ID,NAME,TYPE1,TYPE2,TYPE3,拼成字符串。
存储到数据库中,后期再根据数据库里的内容生成文件。 这段代码的处理速度非常慢。String s = "";
for (int i = 0; i < list.size(); i++) {
Map map = (Map) list.get(i);
s+=map.get("ID").toString()+map.get("NAME").toString()+map.get("TYPE1").toString()+map.get("TYPE2).toString()+map.get("TYPE3").toString()+ "\r\n";
}
现在想的方法是String换成 StringBuffer,其它还有别的处理方式吗?可以加快速度的?一方面是数据量太大,另外这种处理是不是不应该放到页面进行操作?因为很慢,对用户来说感觉非常不好。
存储到数据库中,后期再根据数据库里的内容生成文件。 这段代码的处理速度非常慢。String s = "";
for (int i = 0; i < list.size(); i++) {
Map map = (Map) list.get(i);
s+=map.get("ID").toString()+map.get("NAME").toString()+map.get("TYPE1").toString()+map.get("TYPE2).toString()+map.get("TYPE3").toString()+ "\r\n";
}
现在想的方法是String换成 StringBuffer,其它还有别的处理方式吗?可以加快速度的?一方面是数据量太大,另外这种处理是不是不应该放到页面进行操作?因为很慢,对用户来说感觉非常不好。
1. 查询数据库的时候使用分页
2. 使用StringBuilder
3. 写入数据库也是批量写入
4. 生成文件时,如果不能使用数据库自己的功能,也可以先批量查询出来,写入文件时设置缓存大些。
完全可以一次访问数据库,搞定你的数据
用这种方式吗?select ID||' '||NAME||' '||TYPE1||' '||TYPE2||' '||TYPE3 as content .但是大数据量时,这种查询出来也非常慢。查询出来数据也要遍历,将content 再拼接起来。只是少了content 内部字段拼接的程序。在数据库层解决是指的是?可以直接在ORACLE SQL语句中进行遍历每条记录的content再拼接起来?
但是数据是这样的形式:
ID NAME TYPE1 TYPE2 TYPE3
1 MARY T1 T2 T3
2 TOM T11 T22 T33
3 JERRY T12 T13 T14
......最后拼接成这样的形式,放到数据库的一个字段里:
1 MARY T1 T2 T3
2 TOM T11 T22 T33
3 JERRY T12 T13 T14insert嵌套select可以理解,但多条记录的拼接怎么用SQL实现?