MySQLインサートが遅いなと思ったらマルチプルインサートを試してみよう

更新:2018.3.13 views:2144

目次

単純にインサートしているだけなのに、処理速度が遅くて困っているなら、マルチプルインサートで速度が改善されます。

私のケースでは、1万件弱をインサートしてみたら、6秒前後かかっていましたが、マルチプルインサートに変えたら1秒以下くらいで同件数をインサートすることができました。

以降、実際にマルチプルインサートを行う方法を書いてみたいと思います。

MySQLマルチプルインサートが早い

通常のインサート例。

insert into [tablename] ([col1],[col1],[col1]) values ([value1],[value2],[value3]);

複数行のマルチプルインサート例。

insert into [tablename] ([col1],[col1],[col1]) values ([value1],[value2],[value3]),([value1],[value2],[value3]),([value1],[value2],[value3]);

1クエリのサイズに気をつける

MySQLには1クエリのサイズに上限設定があります。

1クエリのサイズに気を付けないとエラーになります。

下記のクエリで1クエリに使えるサイズを調べることができます。

※単位はバイトです。

show variables like 'max_allowed_packet';

その場限りなら、下記のコマンドでサイズを増やすことができます。

set max_allowed_packet=[設定したい値];

恒久的にサイズを増やす場合は、/etc/my.cnfの下記を修正してください。

max_allowed_packet=16MB

設定変更後はMySQLサービスの再起動が必要です。

まとめ

単純に全件入れ替えるような処理は積極的にマルチプルインサートを使って行くことで、処理速度を改善できます。

MySQL関連記事











これからブログなどのサイトを作りたいと思っている人は、お名前.comでのドメイン取得がオススメです。

■□━━ 急げ、ドメインは早い者勝ち! ━━□■
     ■お名前.com

アマゾンの2019年本屋大賞一覧

そして、バトンは渡された
ひと
ベルリンは晴れているか
熱帯
ある男

楽天市場のおすすめ商品一覧

お金2.0 新しい経済のルールと生き方 [ 佐藤航陽 ]
全部レンチン!やせるおかず 作りおき 時短、手間なし、失敗なし
「読む力」と「地頭力」がいっきに身につく 東大読書 [ 西岡 壱誠 ]