サーチ…


備考

設定は3つの方法のいずれかで行われます。

  • コマンドラインオプション
  • my.cnf設定ファイル
  • サーバー内から変数を設定する

コマンドラインオプションの形式は、 mysqld --long-parameter-name=value --another-parameterです。同じパラメータをmy.conf構成ファイルに入れることができます。 一部のパラメータは、MySQL内のシステム変数を使用して設定できます。パラメータの完全なリストについては、公式文書をチェックしてください。

変数は、ダッシュを持つことができます-またはアンダースコア_=周りにスペースが存在する可能性があります。 KMG 、キロ、メガ、ギガの数字の大きい数字を付けることができます。 1行に1つの設定。

Flags:通常、 ON1は同義語ですが、 OFF0は同じです。いくつかのフラグは後に何もない。

my.cnfに設定を置くとき、 サーバのすべての設定は[mysqld]セクションになければならないので、設定を盲目的にファイルの最後に追加しないでください。 (注:複数のmysqlインスタンスが1つのmy.cnfを共有できるツールの場合、セクション名は異なる場合があります)。

InnoDBのパフォーマンス

my.cnfに配置できる設定は何百もあります。 MySQLの 'lite'ユーザにとって、それほど重要ではありません。

データベースが簡単になったら、次のパラメータを設定することをお勧めします。

innodb_buffer_pool_size

これは、 使用可能な RAMの約70%に設定する必要があります(RAMが4GB以上の場合、小さなVMまたはアンティークマシンを使用している場合は、より小さなパーセンテージ)。この設定は、InnoDB ENGINEで使用されるキャッシュの量を制御します。したがって、InnoDBのパフォーマンスにとっては非常に重要です。

膨大なデータを挿入できるパラメータ

列にイメージやビデオを保存する必要がある場合は、アプリケーションによって必要に応じて値を変更する必要があります

max_allowed_pa​​cket = 10M

MはMb、GはGb、KはKb

group_concatの文字列制限を増やす

group_concatは、 group内のnull以外の値を連結するために使用されます。結果の文字列の最大長は、 group_concat_max_lenオプションを使用して設定できます。

SET [GLOBAL | SESSION] group_concat_max_len = val;

GLOBAL変数を設定すると永続的な変更が行われますが、 SESSION変数を設定すると現在のセッションの値が設定されます。

最小限のInnoDB設定

これは、InnoDBテーブルを使用するMySQLサーバーの最小限の設定です。 InnoDBを使用すると、クエリキャッシュは必要ありません。表またはデータベースがDROPときにディスク・スペースを再利用します。 SSDを使用している場合、フラッシュは冗長操作です(SDDは逐次的ではありません)。

default_storage_engine = InnoDB
query_cache_type = 0
innodb_file_per_table = 1
innodb_flush_neighbors = 0

並行性

innodb_thread_concurrencyを無限大(0)に設定innodb_thread_concurrencyことで、デフォルトの4スレッド以上を作成できることを確認してください。これによりInnoDBは最適な実行に基づいて決定することができます。

innodb_thread_concurrency = 0
innodb_read_io_threads = 64
innodb_write_io_threads = 64

ハードドライブの使用率

MySQLのIOPSの容量(通常の負荷)とcapacity_max(絶対最大)を設定します。 HDDのデフォルト値は200ですが、最近では数千のIOPSが可能なSSDではこの数を調整したいと考えています。 IOPSを決定するために実行できるテストはたくさんあります。 専用のMySQLサーバーを実行している場合は 、上記の値はほぼ限界値になるはずです。同じマシン上で他のサービスを実行している場合は、必要に応じて配分する必要があります。

innodb_io_capacity = 2500
innodb_io_capacity_max = 3000

RAM使用率

MySQLに使用可能なRAMを設定します。経験則は70〜80%ですが、これは実際にインスタンスがMySQL専用であるかどうか、使用可能なRAMの量によって異なります。たくさんある場合はRAM(つまりリソー​​ス)を無駄にしないでください。

innodb_buffer_pool_size = 10G

安全なMySQL暗号化

デフォルトの暗号化aes-128-ecbでは、ECB(Electronic Codebook)モードが使用されています。これは安全ではなく、決して使用しないでください。代わりに、設定ファイルに次の行を追加します。

block_encryption_mode = aes-256-cbc


Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow