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

作者: qrtt1 (有些事,有時候。。。)   2018-10-25 15:55:45
==============================================================================
→ qrtt1: 你是打算多快!?要有個門檻出來,拿工具量一量,再來看要 10/25 00:32
→ qrtt1: 不要改它吧。你資料產出的那一端,到底每秒能生多少筆? 10/25 00:33
→ qrtt1: 你的消耗端 (mysql) 只要能承受比它高,就算達標了唄。 10/25 00:33
希望這樣子的排程工作能在2小時之內完成更新60萬筆資料。
==============================================================================
(60 * 10000) / (2 * 60 * 60) = 83.33333333333333
你開個 jmeter 試著 jdbc 寫入一下,它有超過每秒 84 組就算合用了
(或是你打算資料的方式去打)
作者: qrtt1 (有些事,有時候。。。)   2017-10-25 00:32:00
你是打算多快!?要有個門檻出來,拿工具量一量,再來看要不要改它吧。你資料產出的那一端,到底每秒能生多少筆?你的消耗端 (mysql) 只要能承受比它高,就算達標了唄。
作者: kentyeh (kent)   2018-10-26 11:41:00
Java來更新資料當然可以,首先用多執行緒更新是必然的,如果你的資料是Insert,MySql有Buld Insert的語法可用,再來是應用preparedstatement來更新,因為你不會想要每一句語法都compile execution plan一次,最後就是Transaction的控制,如果是AutoCommit,每句都是一個Transaction,真的是會慢到哭出來,建議每更新1千次做為一個交易,大概這樣
作者: adrianshum (Alien)   2018-10-26 14:27:00
還有 JDBC 有batch update. 上面一堆都做完還是慢再來講multi-thread 吧
作者: qrtt1 (有些事,有時候。。。)   2018-10-26 21:20:00
樓上各位大大,不是我問的問題R
作者: adrianshum (Alien)   2018-10-27 12:09:00
XD 我知道,有人在這裡回所以我也順便回一下而已

Links booklink

Contact Us: admin [ a t ] ucptt.com