この記事には広告を含む場合があります。
記事内で紹介する商品を購入することで、当サイトに売り上げの一部が還元されることがあります。
AWS の RDS に設定するパラメータグループ
AWS が MySQL8 系統に移行したため、RDS のパラメーターグループを見直しました。その上で基本的には MySQL8.0 のパラメーターグループに関して、とりあえず設定しておく項目を中心にご紹介します。
設定するパラメータ
まず結論はコチラ。
パラメーターグループの初期値と異なる項目の一覧を提示します。
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_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_server:utf8mb4_general_ci
なお utf8mb4_general_ci と新しいデフォルト値の utf8mb4_0900_ai_ci の検証を行って下さっているサイトがあったので載せておきます。
—
〇参考サイト
utf8mb4のCOLLATEの違いについて
—
文字化け防止用によく設定していた
skip-character-set-client-handshake
は未設定。MySQL8.3.0で削除されるので一旦、設定しないようにしました。
タイムゾーンについて
タイムゾーンの時間設定はもちろん日本時間「アジア/東京」を設定。
もし海外でサービスを提供するときは国ごとのタイムゾーンを設定します。または他国でタイムゾーンを共通とする場合は、一般的に世界標準時を設定。僕の体感としては日本で開発しているサービスだと日本時間、または世界標準時を設定する会社が多い認識です。
その他の設定
innodb のパージをする際のスレッド数については、初期の「1」つだと不安があったので、「4」つに変更しています。
さいごに
いかがでしたでしょうか?
全てのシステムへの最適解では無いものの、多くのシステムではベースと考えれる値になっているかと思います。あとはご自身のサービスに合わせてご調整ください。