LoginSignup
10
11

More than 3 years have passed since last update.

MariaDB/MySQLで最低限チェックしておきたい設定10選

Last updated at Posted at 2016-10-24

システム変数

  • thread_cache_size

スレッドをキャッシュしておく数。デフォルトは128。もし0にしているとクライアントのアクセスのたびにスレッドが生成されるため効率が悪い。

  • thread_handling = pool-of-threads
  • thread_pool_size = 8

MariaDBは標準でスレッドプールをサポートしている。これを設定することでクライアントごとにスレッド(キャッシュ含む)を割り当てるのではなく、スレッドプール単位になるためスレッド生成やスイッチ切り替えのオーバーヘッドを減らせる。

通信系

  • max_connections
  • max_user_connections

サーバに同時に接続できるクライアントの最大数を指定。max_connectionsのデフォルトは150。

  • max_allowed_packet

1パケットの最大サイズ。少なくともBLOB型を使っているのであればサイズに注意。デフォルトでは16MB。

  • skip_name_resolve

ホスト名のIPアドレス解決をするか否か。デフォルトは「解決する」になっているため、/etc/hostsに記載がないホスト名であれば、DNS検索が走るので遅くなる。ホスト名ではなくIPアドレス記載にして、この設定は「解決しない」にしておくといい。

クエリ系

  • query_cache_limit
  • query_cache_size

クエリ結果のキャッシュする上限とそのために確保するメモリサイズ。

InnoDB系

  • innodb_buffer_pool_size

データベースサーバの性能に直結する。可能な限り大きな領域を指定する。デフォルトは128MB

  • innodb_sync_array_size

スレッドの制御するための内部構造を分割する。
高負荷で多くのスレッドが待ちになる場合この値を増やす。デフォルトは1。

  • innodb_file_per_table
    テーブルごとにデータファイルを保持するかどうか。デフォルトで有効。

  • innodb_file_format
    ファイルフォーマット。デフォルトだとAntelope,圧縮に対応した大容量向きなのは、Barracuda。意外に重要なので、テーブル定義段階で確認しておくこと。

内容 説明 デフォ
max_connections MYSQLが受け入れ可能な最大接続数 151
max_allowed_packet クライアントとの送受信のパケット最大サイズ。 4M
character_set_server サーバが利用するデフォの文字コード latin
lower_case_table_names テーブル名をケースセンシティブ(大文字小文字区別)するか 無効
innodb_buffer_pool_size 通常はメモリの7割程度 128M
innodb_log_file_size 増やすことでページのフラッシュを遅らせるので更新処理が早くなる 50M
innodb_io_capacity バックグラウンドスレッドが実行可能なIOPSの上限。ストレージと合わせておく 200
innodb_print_all_deadlocks デッドロック時に詳細のログを出す 無効

終わり。

10
11
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10
11