[RDS]MySQL8.0でおすすめのパラメータグループの設定

database_settings

この記事には広告を含む場合があります。

記事内で紹介する商品を購入することで、当サイトに売り上げの一部が還元されることがあります。

AWS の RDS に設定するパラメータグループ

AWS が MySQL8 系統に移行したため、RDS のパラメーターグループを見直しました。その上で基本的には MySQL8.0 のパラメーターグループに関して、とりあえず設定しておく項目を中心にご紹介します。

 

設定するパラメータ

まず結論はコチラ。

パラメーターグループの初期値と異なる項目の一覧を提示します。

character_set_client:utf8mb4
character_set_connection:utf8mb4
character_set_database:utf8mb4
character_set_results:utf8mb4
character_set_server:utf8mb4
collation_connection:utf8mb4_general_ci
collation_server:utf8mb4_general_ci
time_zone:Asia/Tokyo
innodb_purge_threads:4

 

文字コードについて

文字コードは多言語や絵文字に対応している「utf8mb4」で統一しています。
※もちろん海外(主に中国)に対応しない、または絵文字を使用しない場合は「utf8」のままで大丈夫です。

character_set_client:utf8mb4
character_set_connection:utf8mb4
character_set_database:utf8mb4
character_set_results:utf8mb4
character_set_server:utf8mb4

ちなみに MySQL8.0 から、utf8mb4 の初期設定の collation が utf8mb4_general_ci から utf8mb4_0900_ai_ci に変更となりました。そのため引き続き utf8mb4_general_ci を使用したい場合は明示的に指定する必要があります。

collation_connection:utf8mb4_general_ci
collation_server:utf8mb4_general_ci

なお utf8mb4_general_ci と新しいデフォルト値の utf8mb4_0900_ai_ci の検証を行って下さっているサイトがあったので載せておきます。


〇参考サイト
utf8mb4のCOLLATEの違いについて

文字化け防止用によく設定していた
skip-character-set-client-handshake
は未設定。MySQL8.3.0で削除されるので一旦、設定しないようにしました。

 

タイムゾーンについて

タイムゾーンの時間設定はもちろん日本時間「アジア/東京」を設定。
もし海外でサービスを提供するときは国ごとのタイムゾーンを設定します。または他国でタイムゾーンを共通とする場合は、一般的に世界標準時を設定。僕の体感としては日本で開発しているサービスだと日本時間、または世界標準時を設定する会社が多い認識です。

time_zone:Asia/Tokyo

 

その他の設定

innodb のパージをする際のスレッド数については、初期の「1」つだと不安があったので、「4」つに変更しています。

innodb_purge_threads:4

 

さいごに

いかがでしたでしょうか?

全てのシステムへの最適解では無いものの、多くのシステムではベースと考えれる値になっているかと思います。あとはご自身のサービスに合わせてご調整ください。