大量のデータをinsertする
お仕事で大量のデータをinsertするスクリプトをRubyで書いていたのですが、
最初、イテレータで1件ごとにinsert文を書いていました・・・
(はずかしいですが・・・)
パフォーマンス的に悪かったので調べてみたところ、解決方法がありました〜
1つのinsert文にする
こんな書き方でinsert文を作成したところ、かなりパフォーマンスがあがりました
insert into table values (1,'hoge'),(2,'foo'),(3,'bar')・・・
大量のクエリだとエラーになる
どのデータベースでも共通かと思いますが、大量のクエリを発行するとエラーになります。
MySQLの場合は、my.cnfファイルの「mysqld」ディレクティブの「max_allow_packet」を設定値を
変更することで解決できます。