teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

案を追加しました

2023/09/29 08:03

投稿

matsubokkuri
matsubokkuri

スコア756

answer CHANGED
@@ -1,10 +1,29 @@
1
1
  実際にやってみるのが良いです。
2
2
 
3
+ # アプローチ1
4
+
3
5
  私であれば、まず、bulk insertを使います。
4
6
  1万件を1文で挿入するようにして、1000万件ぐらいinsertしてみます。
5
7
 
8
+ このSQLを生成するプログラミング言語によってもパフォーマンスが変わってくると思うので実測しないと結論を出せないと思います。
9
+
6
10
  その際に、1回あたりの実行時間を計測しておきます。そうすれば、5億件やったときにどのくらの時間がかかるかを予測できると思います。
7
11
 
8
12
  同時に、CPUやメモリのリソース状況も計測しておくと予測できます。
9
13
 
10
14
 
15
+ # アプローチ2
16
+
17
+ アプローチ1だと時間がかかりすぎたりする場合はLOAD DATAを使います。
18
+
19
+ こっちのほうが楽だと思います。
20
+ https://dev.mysql.com/doc/refman/8.0/ja/load-data.html
21
+
22
+ # アプローチ3
23
+
24
+ RDSとのことなので、AWS Database Migration Serviceを検討します。
25
+ フルマネージドですので速い気はします。
26
+
27
+ https://docs.aws.amazon.com/ja_jp/dms/latest/userguide/CHAP_Target.S3.html
28
+
29
+