セキュリティやネットワーク、クラウドに強くなりたい私

ブリッジSEがぶつかったこと、学んでいること

4年目ブリッジSEがぶつかったこと、学んでいることをメモ程度にまとめます

MySQLの設定を本番前に見直したい

記事の目的

リリース前にMySQLの設定を確認したい!
そんな自分のための備忘録。

my.cnfの設定

開発者向け!MySQL my.cnfの設定 | Parameter
上記参考にさせていただきました!
以下のmy.cnfさえとりあえず確認できてれば、かなりのパフォーマンスチューニングになるとのこと

MySQL :: MySQL 5.6 リファレンスマニュアル :: 14.12 InnoDB の起動オプションおよびシステム変数
公式はこちら

innodb_buffer_pool_size
  • メモリにロードされるデータとインデックスのためにInnoDBがどれくらいメモリを使うかを指定するもの
  • デフォルトは128M
  • MySQL専用であれば、搭載メモリの50%~80%が推奨
innodb_log_file_size
  • 書き込み操作をこのログに書き込んでおいて、落ち着いたらコミットするもの(トランザクションログ(InnoDB_logfile))
  • デフォルトは48M
  • 2GB以上にするのが一般的だそう

第6回 MySQLチューニング(5) パラメタチューニングの基礎:MySQLをチューニング,そしてスケールアップ/スケールアウトへ|gihyo.jp … 技術評論社

  • innodb_buffer_pool_size の変更と同時に変えなければならない
innodb_data_file_path
  • InnoDBデータファイルのパス・初期サイズの設定
  • デフォルト: innodb_data_file_path = ibdata1:10M:autoextend
  • ↑ つまり10Mごとに新しいデータファイルを作成するということ
  • データファイルは一つの方が早いので、余裕のあるサイズを設定しておくのがいいらしい


https://www.mk-mode.com/blog/2013/05/27/mysql-innodb-chuning/#

innodb_file_per_table
  • ファイルレベルでテーブルを管理していくもの
  • テーブルをドロップしたりするときにディスク容量を解放できるそう
  • default : innodb_file_per_table= ON (5.6.6以上の場合)

参考↓
第55回 innodb_file_per_tableオプションについて:MySQL道普請便り|gihyo.jp … 技術評論社

innodb_log_files_in_group
  • トランザクションログ(InnoDB_logfile)の大きさと、1グループのログファイル数。
  • default: innodb_log_files_in_group=2
  • 推奨値も2なので、そのままにする

セキュリティ設定を見直す

mysql_secure_installation

  • 実行ファイルで、最低限のセキュリティ設定を行うことができる

weblabo.oscasierra.net

DBユーザ作成を見直す

  • Select用userが作成されているか
  • Update用userが作成されているか

所感

正直まだまだ見るところあるなと思いつつ、一旦これで妥協した感じですね。
どんどん更新していく予定です。
まだまだ勉強しなければという感じです。