MySQLを8.0にアップデートしたら遅くなった場合の対応策
MySQLを8.0にアップデートしたら遅くなる場合があるようです。
原因は
・MySQL8.0はREDOログ関連で変更があり遅くなった
・MySQL8.0はバイナリログがデフォルト出力になり少し遅くなった
だそうです。
対応策
専用ログライタスレッドの設定をオフにする
innodb_log_writer_threads = OFFを設定して、専用ログライタスレッドを無効にすればそこそこ速くなるようです。
オフにしてもREDOログレコードは書き込まれるそうです。
但し、CPUコアを多く(32個等)搭載していて、同時アクセスが多い場合はオンのまま運用したほうが良いようです。
以下は https://dev.mysql.com/doc/refman/8.0/ja/innodb-parameters.html からの引用です。
同時実行性の低いシステムでは、専用ログライタースレッドを無効にすると、パフォーマンスが向上します。
(例)my.ini 又は my.cnf
[mysqld]
・・・省略
# 専用ログライタスレッドの設定をオフにする
innodb_log_writer_threads = OFF
[client]
・・・省略
バイナリログを止める
disable-log-bin又はskip-log-binを設定してバイナリログを止める。
バイナリログを止めると少し速くなるそうです。
(例)my.ini 又は my.cnf
[mysqld]
・・・省略
# バイナリログを止める
skip-log-bin
[client]
・・・省略
参考にしたWEBページ
https://qiita.com/hmatsu47/items/06489ef05bfcaaf310f3
https://qiita.com/kunit/items/7f5883121a621a775e53