MySQL 8.0 の innodb_dedicated_server について

MySQL 8.0
この記事は最終更新から6年以上経過しています。内容が古くなっている可能性があります。

innodb_dedicated_server は MySQL 8.0 で追加されたオプションで、サーバーのメモリー量から自動的にInnoDBのパラメータを設定します。(デフォルトOFF)

MySQL :: MySQL 8.0 Reference Manual :: 15.13 InnoDB Startup Options and System Variables

目次

パラメーターの設定ルール

「dedicated」と名前がついている通り、MySQL専有サーバーでの利用を想定しています。
現在、このパラメーターをONにした場合に変更されるパラメーターは以下の3つのみです。

  • innodb_buffer_pool_size
  • innodb_log_file_size
  • innodb_flush_method

搭載メモリー量によって設定される値は以下の通りです

メモリー量 innodb_buffer_pool_size innodb_log_file_size
1GB未満 128MB 48MiB
4GB以下 搭載メモリの50% 128MiB
8GB以下 搭載メモリの75% 512MiB
16GB以下 搭載メモリの75% 1024MiB
16GBより多い 搭載メモリの75% 2048MiB

innodb_flush_method は O_DIRECT_NO_FSYNC に設定されます(使用できない場合はデフォルト値のままです)

参考: MySQL :: MySQL 8.0 Reference Manual :: 15.6.13 Enabling Automatic Configuration for a Dedicated MySQL Server

innodb_dedicated_server を試してみる

デフォルトの場合(innodb_dedicated_server=OFF)

以下のようにデフォルト値のままです。

innodb_dedicated_server=ON(メモリ62GB搭載)

ルールに基づいて設定値が変わっていることが確認できます。

変更対象のパラメーターの値を設定していた場合

変更対象のパラメーターを事前に設定していると innodb_dedicated_server を ON にしていても無視されます。下記は innodb_buffer_pool_size を設定していた場合、エラーログにワーニングとして出力されます。

まとめ

innodb_dedicated_server の設定を有効にしておくと、MySQLが再起動する度に搭載メモリ量を確認して設定するようなので、専有よりもリソースが可変するdockerのようなコンテナ環境で使用するほうが便利な機能かもしれません。

スマートスタイルTECHブログについて

スマートスタイルTECHブログでは、日頃MySQLのサポート業務に従事している有資格者で構成された技術サポートチームがMySQLに関する技術情報を発信しています。データベースのお困りごとはお気軽にご相談下さい。

よかったらシェアしてね!
  • URLをコピーしました!
目次