Re: [問題] 大數據批次更新的方式

看板java作者 (有些事,有時候。。。)時間6年前 (2018/10/25 15:55), 6年前編輯推噓0(0011)
留言11則, 3人參與, 6年前最新討論串2/2 (看更多)
==============================================================================

10/25 00:32,
你是打算多快!?要有個門檻出來,拿工具量一量,再來看要
10/25 00:32

10/25 00:33,
不要改它吧。你資料產出的那一端,到底每秒能生多少筆?
10/25 00:33

10/25 00:33,
你的消耗端 (mysql) 只要能承受比它高,就算達標了唄。
10/25 00:33
希望這樣子的排程工作能在2小時之內完成更新60萬筆資料。 ============================================================================== (60 * 10000) / (2 * 60 * 60) = 83.33333333333333 你開個 jmeter 試著 jdbc 寫入一下,它有超過每秒 84 組就算合用了 (或是你打算資料的方式去打) -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.162.219.249 ※ 文章網址: https://www.ptt.cc/bbs/java/M.1540454147.A.990.html ※ 編輯: qrtt1 (223.140.6.48), 10/25/2018 17:26:13 ※ 編輯: qrtt1 (223.140.6.48), 10/25/2018 17:33:19

10/26 11:41, 6年前 , 1F
Java來更新資料當然可以,首先用多執行緒更新是必然的,
10/26 11:41, 1F

10/26 11:41, 6年前 , 2F
如果你的資料是Insert,MySql有Buld Insert的語法可用,
10/26 11:41, 2F

10/26 11:41, 6年前 , 3F
再來是應用preparedstatement來更新,因為你不會想要每一
10/26 11:41, 3F

10/26 11:41, 6年前 , 4F
句語法都compile execution plan一次,最後就是Transact
10/26 11:41, 4F

10/26 11:41, 6年前 , 5F
ion的控制,如果是AutoCommit,每句都是一個Transaction
10/26 11:41, 5F

10/26 11:41, 6年前 , 6F
,真的是會慢到哭出來,建議每更新1千次做為一個交易,
10/26 11:41, 6F

10/26 11:41, 6年前 , 7F
大概這樣
10/26 11:41, 7F
真的不夠再來優化,不要為了想優化而優化啊R 而且 DB 與 Java 收資料的層要分開測,因為它們的 Update Per Seconds 是 MIN(DB 寫入速度, JAVA 收資料轉給 DB 寫入) 的結果,要優先調差得那一個。 不預設立場是誰快誰慢,也不過早優化。

10/26 14:27, 6年前 , 8F
還有 JDBC 有batch update. 上面一堆都做完還是慢再
10/26 14:27, 8F

10/26 14:27, 6年前 , 9F
來講multi-thread 吧
10/26 14:27, 9F

10/26 21:20, 6年前 , 10F
樓上各位大大,不是我問的問題R
10/26 21:20, 10F
※ 編輯: qrtt1 (36.231.158.107), 10/26/2018 21:38:27 ※ 編輯: qrtt1 (36.231.158.107), 10/26/2018 21:39:57 ※ 編輯: qrtt1 (36.231.158.107), 10/26/2018 21:44:14

10/27 12:09, 6年前 , 11F
XD 我知道,有人在這裡回所以我也順便回一下而已
10/27 12:09, 11F
文章代碼(AID): #1RqNS3cG (java)
討論串 (同標題文章)
文章代碼(AID): #1RqNS3cG (java)