[MySQL]INSERT INTO ON DUPLICATE KEY UPDATEのJDBCでのバッチ処理の高速化

と呟いたけど、ちょこちょこっと調べていたら公式のマニュアルにいい感じの記述を見つけたので実験してみて成功したので記録。

こんなテーブルを想定。

駄目な例:

これだと、INSERT INTO table VALUES(1,xx),(2,xx),(3,xx)…みたいな短いSQL文に変換して送ってくれない。(ログ取り忘れたけど、恐らく送ってくれてない。うまく省略できる形ではないのかな?)
とりあえず、UPDATE以下を関数を使って書いてしまえばOK、省略した形で送ってくれる。

INSERTをバッチ処理にして高速化する手法は、このページで知ったのですがこれに何人助けられたんだろう。方法4はトリッキーな感じがして手が出せていませんが。

カテゴリー: Java, MySQL, プログラミング関連 パーマリンク

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です