回答編集履歴
1
フォーマットの修正
answer
CHANGED
@@ -4,17 +4,19 @@
|
|
4
4
|
|
5
5
|
---
|
6
6
|
|
7
|
-
|
7
|
+
- プリペアードステートメントとループを用いる
|
8
8
|
|
9
|
-
プリペアードステートメントを用いてINSERTするクエリはキャッシュしておき、追加したいレコードをループで1行1行INSERTする方法がおすすめです。
|
9
|
+
(ループで1行1行INSERTで要件が実現できる場合)プリペアードステートメントを用いてINSERTするクエリはキャッシュしておき、追加したいレコードをループで1行1行INSERTする方法がおすすめです。
|
10
10
|
|
11
|
-
|
11
|
+
クエリ自体はプリペアードステートメントでパースされているため、ループ内ではキャッシュしたステートメントIDとパラメータのみデータベースサーバに送信するため、効率的です。(またGoのランタイムが必要に応じて、コネクションプールから新規にコネクションを生成し、並列にクエリを実行します)
|
12
12
|
|
13
|
+
- 動的にクエリを生成する
|
14
|
+
|
13
15
|
別の方法としてはプリペアードステートメントを使わずに、追加したいレコード数に合わせてクエリのパラメータの数を調整するように、動的にクエリを生成する方法があります。
|
14
16
|
[https://stackoverflow.com/questions/21108084/how-to-insert-multiple-data-at-once](https://stackoverflow.com/questions/21108084/how-to-insert-multiple-data-at-once)
|
15
17
|
|
16
|
-
|
18
|
+
- その他参考
|
17
19
|
|
18
20
|
以下の記事も参考になると思いますので、URLを載せておきます。
|
19
21
|
|
20
|
-
|
22
|
+
[golang 一度のinsertで複数のデータをまとめてDBに入れる方法](https://teratail.com/questions/237181)
|