恐れ入ります。
現在、仕事でAmazon RDS のMySQLを使用しています。
主に、ログデータの移動のようなことをバッチで行っています。
1回のバッチで、100~1000万件ほどの処理を何回か実行します。
単純なSQLで、1つのテーブルから1つのテーブルへの移動で、
insert... select で実行しています。
ただ、10秒程度で終わる処理が、
繰り返していると、あるときに突然遅くなり、2~3分かかるようになってしまいます。
この重い処理を通り抜けると、以前よりは遅いですが速度が戻ってきます。
原因を調べている間に、primary や index をすべて外して処理することも実施しましたが、
体感できる速度の変化はありませんでした。。
RDSのモニターでは、
CPUは20%程度、使用できるメモリーも5GB以上の余裕があり安定しているようです。
index も付いていない、単純な1対1のテーブルの insert... select 文ですので、
SQL自体に問題があるとは考えにくいということになり、MySQLの設定調整を調べてみました。
それぞれのサイトで紹介されていた以下のパラメーターを変更してみたのですが、
体感できる効果はありませんでした。
innodb_buffer_pool_size
innodb_lru_scan_depth
innodb_log_buffer_size
innodb_log_file_size
innodb_log_file_size
bulk_insert_buffer_size
max_allowed_packet
innodb_log_file_size
同様の現象について、ご経験のある方がいれば、
教えていただけると幸いです。
回答3件
あなたの回答
tips
プレビュー