作者qrtt1 (有些事,有时候。。。)
看板java
标题Re: [问题] 大数据批次更新的方式
时间Thu Oct 25 15:55:45 2018
==============================================================================
1F:→ qrtt1: 你是打算多快!?要有个门槛出来,拿工具量一量,再来看要 10/25 00:32
2F:→ qrtt1: 不要改它吧。你资料产出的那一端,到底每秒能生多少笔? 10/25 00:33
3F:→ qrtt1: 你的消耗端 (mysql) 只要能承受比它高,就算达标了呗。 10/25 00:33
希望这样子的排程工作能在2小时之内完成更新60万笔资料。
==============================================================================
(60 * 10000) / (2 * 60 * 60) = 83.33333333333333
你开个 jmeter 试着 jdbc 写入一下,它有超过每秒 84 组就算合用了
(或是你打算资料的方式去打)
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 1.162.219.249
※ 文章网址: https://webptt.com/cn.aspx?n=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
4F:→ kentyeh: Java来更新资料当然可以,首先用多执行绪更新是必然的, 10/26 11:41
5F:→ kentyeh: 如果你的资料是Insert,MySql有Buld Insert的语法可用, 10/26 11:41
6F:→ kentyeh: 再来是应用preparedstatement来更新,因为你不会想要每一 10/26 11:41
7F:→ kentyeh: 句语法都compile execution plan一次,最後就是Transact 10/26 11:41
8F:→ kentyeh: ion的控制,如果是AutoCommit,每句都是一个Transaction 10/26 11:41
9F:→ kentyeh: ,真的是会慢到哭出来,建议每更新1千次做为一个交易, 10/26 11:41
10F:→ kentyeh: 大概这样 10/26 11:41
真的不够再来优化,不要为了想优化而优化啊R
而且 DB 与 Java 收资料的层要分开测,因为它们的 Update Per Seconds 是
MIN(DB 写入速度, JAVA 收资料转给 DB 写入)
的结果,要优先调差得那一个。
不预设立场是谁快谁慢,也不过早优化。
11F:→ adrianshum: 还有 JDBC 有batch update. 上面一堆都做完还是慢再 10/26 14:27
12F:→ adrianshum: 来讲multi-thread 吧 10/26 14:27
13F:→ qrtt1: 楼上各位大大,不是我问的问题R 10/26 21:20
※ 编辑: 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
14F:→ adrianshum: XD 我知道,有人在这里回所以我也顺便回一下而已 10/27 12:09