當前位置:首頁 » 編程語言 » java分批處理10萬數據

java分批處理10萬數據

發布時間: 2022-07-23 07:37:39

java大數據量分批處理怎麼實現

讀取數據估計是沒辦法了,重點可以放在寫入的操作上,粗略的認為,你使用框架進行資料庫寫入操作還不如用使用java原生的jdbc進行操作然後使用jdbc 的原生的批處理,我覺得肯定比框架快。我記得我當時插入10w條數據,只用了3秒,不過用的是oracle資料庫。進行邊讀取邊插入,這樣佔用的內存也相對小一些

⑵ java的rs.next()當數據量到10萬以上的時候會很慢

看到上面說批量處理的回答我蛋碎了一地......
這明顯是讀取數據,而不是寫入資料庫,怎麼批處理?
你想知道他的效率,可以寫代碼測試一下,或者去分析他的源碼
//---------------------------------------
根據你的補充,你是想從原表中抽出部分列組成一個新表。
感覺類似於創建視圖。
你去了解一下資料庫的命令,貌似有類似命令。
直接在資料庫裡面執行,通過JDBC會有個IO過程和CPU的處理過程,效率肯定降低。

⑶ java 如何批量插入數據

通過jdbc就可以執行批量插入了。
以下案例:
1、逐條執行10萬次
2、分批執行將10萬分成m批,每批n條,分多種分批方案來執行。
/**
* 批處理執行
*
* @param m 批次
* @param n 每批數量
* @throws Exception 異常時拋出
*/
public static void testInsertBatch(int m, int n) throws Exception {
init(); //初始化環境
Long start = System.currentTimeMillis();
for (int i = 0; i < m; i++) {
//從池中獲取連接
Connection conn = myBroker.getConnection();
Statement stmt = conn.createStatement();
for (int k = 0; k < n; k++) {
String sql = "\n" +
"insert into testdb.tuser \n" +
"\t(name, \n" +
"\tremark, \n" +
"\tcreatetime, \n" +
"\tupdatetime\n" +
"\t)\n" +
"\tvalues\n" +
"\t('" + RandomToolkit.generateString(12) + "', \n" +
"\t'" + RandomToolkit.generateString(24) + "', \n" +
"\tnow(), \n" +
"\tnow()\n" +
")";
//加入批處理
stmt.addBatch(sql);
}
stmt.executeBatch(); //執行批處理
stmt.close();
myBroker.freeConnection(conn); //連接歸池
}
Long end = System.currentTimeMillis();
System.out.println("批量執行" + m + "*" + n + "=" + m * n + "條Insert操作,共耗時:" + (end - start) / 1000f + "秒!");
}

⑷ java 從資料庫中查出10萬級條數據 生成cvs格式文件

10萬條也不算很大吧,查出來寫成csv不就完了嗎?csv實際上就是一個文本文件,每行是一條數據,每條數據各個欄位之間以逗號分隔,就行了

⑸ JAVA如何批量處理從資料庫提取出的數據

總得有個分隔符號,如,也行。

從第1個字元開始,直接分隔符號,再處理前面得到的資料

⑹ 請問用java怎麼把大量數據入庫到一張表,數據量一次有10萬條,資料庫sybase, 還要拿到成功入庫的條數

批量處理
每10000條(根據機器內存情況調整)循環一次
使用hibernate的session對10000條數據進行循環,每50條刷新一次
配置hibernate sql批量提交的條目數,設置成50
我資料庫用的是db2,10萬條效率還算可以

⑺ 急啊!java中怎麼把10萬條數據導入Excel,

public class ExcelWrit {
public static void main(String[] args) throws IOException, RowsExceededException, WriteException {
String path="D:\\123.xlsx";//找到Excel表格
File file=new File(path);//為excel表格開辟內存
WritableWorkbook workbook=Workbook.createWorkbook(file);
WritableSheet sheet=workbook.createSheet("第一頁", 0);
WritableSheet sheet2=workbook.createSheet("第二頁", 1);
for (int i = 1; i <=100000; i++) {
if (i<=50000) {
Label label=new Label(0, i,Integer.toString(i));
sheet.addCell(label);
System.out.println("正在寫入第"+i+"行");
}else {
Label label=new Label(0, i-50000,Integer.toString(i));
sheet2.addCell(label);
System.out.println("正在寫入第"+i+"行");
}

}
workbook.write();//寫入
workbook.close();//關閉
}
}

熱點內容
說話加密 發布:2025-01-31 14:02:28 瀏覽:552
android倉庫管理系統 發布:2025-01-31 14:02:27 瀏覽:700
batsql語句 發布:2025-01-31 14:00:13 瀏覽:733
沈陽加密狗 發布:2025-01-31 13:54:58 瀏覽:705
聯想伺服器怎麼裝windows7 發布:2025-01-31 13:54:52 瀏覽:874
java二級考試歷年真題 發布:2025-01-31 13:50:31 瀏覽:171
編程一刻 發布:2025-01-31 13:36:44 瀏覽:585
編程小草出土 發布:2025-01-31 13:33:27 瀏覽:579
如何設置伺服器屏蔽你的ip 發布:2025-01-31 13:25:58 瀏覽:243
扣扣的獨立密碼是什麼密碼 發布:2025-01-31 13:23:42 瀏覽:132