真正または假であるシステム変数は,サーバー起動時に変数の名前を指定することで有効にすることができ,
——跳过
プリフィクスを使用することで無効にすることができます。たとえば,InnoDB
適応型ハッシュンデックスを有効または無効にするには,コマンド行で——innodb_adaptive_hash_index
または——skip-innodb_adaptive_hash_index
を使用するか、オプションファ以及ルでinnodb_adaptive_hash_index
またはskip-innodb_adaptive_hash_index
を使用します。数値が指定されるシステム変数は,コマンド行で
--
として指定するか、オプションファ以及ルでvar_name
=价值
として指定できます。var_name
=价值
多くのシステム変数は,実行時に変更できます(セクション5.1.5.2 "動的システム変数"を参照してください)。
全球
および会话
変数スコプ修飾子にいては,集
ステトメントのドキュメントを参照してください。特定のオプションでは,
InnoDB
デタファアウトが制御されます。セクション14.3 " InnoDBの構成"では,これらのオプションを使用する方法にいて説明します。初期段階では使用しないような一部のオプションは,マシンの処理能力やデタベスのワクロドに基づいて,
InnoDB
のパフォマンス特性を調整する際に役立ます。オプションおよびシステム変数の指定に関する詳細は,セクション4.2.3 "プログラムオプションの指定"を参照してください。
表14.6 InnoDBオプション/変数のリファレンス
InnoDBコマンドオプション
-
コマンド行形式 ——ignore-builtin-innodb
非推奨 はい システム変数 ignore_builtin_innodb
スコプ グロバル 動的 いいえ 型 ブル MySQL 5.1では,このオプションを使用すると,サバは組み込み
InnoDB
が存在しない場合と同様に動作し,代わりにInnoDB插件
を使用できました。MySQL5.6では、InnoDB
がデフォルトのストレジエンジンとなり,InnoDB插件
は使用されないため,このオプションは無効です。MySQL5.6.5の時点では、無視されます。 -
コマンド行形式 ——innodb(=价值)
非推奨 5.6.21 型 列挙 デフォルト 在
有効な値 从
在
力
サバが
InnoDB
サポトでコンパルされた場合に,InnoDB
ストレジエンジンのロドを制御します。このオプションの形式はトラステトであり,指定可能な値は从
、在
,または力
です。セクション5.1.8.1 "プラグ邮箱邮箱ンの邮箱ンスト邮箱ルおよびアン邮箱ンスト邮箱ル"を参照してください。InnoDB
を無効にするには,——innodb =了
または——skip-innodb
を使用します。この場合,デフォルトのストレージエンジンはInnoDB
であるため,——default-storage-engine
および——default-tmp-storage-engine
を使用して,永続テブルと临时
テブルの両方にいてデフォルトを別のエンジンに設定しないかぎりサは開始しません。MySQL 5.6.21の時点では,
——innodb =了
および——skip-innodb
オプションが非推奨となり,使用すると警告が発生します。これらのオプションは,今後の MySQL リリースで削除されます。 -
コマンド行形式 ——innodb-status-file
型 ブル デフォルト 从
InnoDB
がMySQLデタディレクトリにinnodb_status。
という名前のファ邮箱ルを作成するかどうかを制御します。有効にすると,pid
InnoDB
は定期的に显示引擎innodb状态
の出力をこのファ邮箱ルに書き込みます。このファ邮箱ルはデフォルトでは作成されません。これを作成するには,
——innodb-status-file = 1
オプションを付けてmysqldを起動します。このファルは,通常のシャットダウン中に削除されます。 InnoDB
ストレジエンジンを無効にします。——innodb
の説明を参照してください。
InnoDBシステム変数
daemon_memcached_enable_binlog
コマンド行形式 ——daemon-memcached-enable-binlog = #
導入 5.6.6 システム変数 daemon_memcached_enable_binlog
スコプ グロバル 動的 いいえ 型 ブル デフォルト 假
このオプションの使用法の詳細は,セクション14.18 " InnoDBとmemcachedの統合"を参照してください。
daemon_memcached_engine_lib_name
コマンド行形式 ——daemon-memcached-engine-lib-name =图书馆
導入 5.6.6 システム変数 daemon_memcached_engine_lib_name
スコプ グロバル 動的 いいえ 型 ファ邮箱ル名 デフォルト innodb_engine.so
InnoDB
memcachedプラグ邮箱ンを実装する共有ラ邮箱ブラリを指定します。このオプションの使用法の詳細は,セクション14.18 " InnoDBとmemcachedの統合"を参照してください。
daemon_memcached_engine_lib_path
コマンド行形式 ——daemon-memcached-engine-lib-path =目录
導入 5.6.6 システム変数 daemon_memcached_engine_lib_path
スコプ グロバル 動的 いいえ 型 ディレクトリ名 デフォルト 零
InnoDB
memcachedプラグ邮箱ンを実装する共有ラ邮箱ブラリを含むディレクトリのパスです。デフォルト値は、米ySQL プラグインディレクトリを表す NULL です。MySQL プラグインディレクトリの外部に配置されている別のストレージエンジンのmemcached
プラグンを指定していなければ,このパラメタを変更する必要はないはずです。このオプションの使用法の詳細は,セクション14.18 " InnoDBとmemcachedの統合"を参照してください。
-
コマンド行形式 ——daemon-memcached-option =选项
導入 5.6.6 システム変数 daemon_memcached_option
スコプ グロバル 動的 いいえ 型 文字列 デフォルト 起動時に,空白文字で区切られたmemcachedオプションをベスとなるmemcachedメモリオブジェクトのキャッシュデモンに渡すために使用されます。たとえば,memcachedが待機するポートを変更したり,同時接続の最大数を削減したり,鍵と値のペアの最大メモリーサイズを変更したり,エラーログに関するメッセージのデバッグを有効にしたりします。
このオプションの使用法の詳細は,セクション14.18 " InnoDBとmemcachedの統合"を参照してください。memcachedのオプションについては、memcached のマニュアルページを参照してください。
-
コマンド行形式 ——daemon-memcached-r-batch-size = #
導入 5.6.6 システム変数 daemon_memcached_r_batch_size
スコプ グロバル 動的 いいえ 型 数値 デフォルト 1
提交
を実行して新しいトランザクションを開始する前に,実行されるmemcached読み取り操作(得到
の数を指定します。daemon_memcached_w_batch_size
の対の片方です。この値は,sqlステトメントを使用してテブルに行われた変更がすぐにmemcached操作に表示されるように,デフォルトで1に設定されています。ベスとなるテブルがmemcachedインタフェースからのみアクセスされているシステム上で,頻繁なコミットによるオーバーヘッドを削減するために,これを大きくすることがあります。大きすぎる値を設定すると,撤销データまたは重做データの量によっては,長時間実行されるトランザクションの場合と同様に,一部のストレージでオーバーヘッドが発生する可能性があります。
このオプションの使用法の詳細は,セクション14.18 " InnoDBとmemcachedの統合"を参照してください。
-
コマンド行形式 ——daemon-memcached-w-batch-size = #
導入 5.6.6 システム変数 daemon_memcached_w_batch_size
スコプ グロバル 動的 いいえ 型 数値 デフォルト 1
提交
を実行して新しいトランザクションを開始する前に,実行されるmemcached書き込み操作(添加
、集
、增加
など)の数を指定します。daemon_memcached_r_batch_size
の対の一方です。この値は,格納されるデータはすべて停止に備えて保持しておくことが重要であり,すぐにコミットされるべきであるという仮定に基づいて,デフォルトで1に設定されています。クリティカルでないデータを格納するときは,頻繁なコミットによるオーバーヘッドを削減するために,この値を大きくすることがあります。ただし,クラッシュ時に,コミットされていない最後の
N
-1回の書き込み操作が失われる可能性があります。このオプションの使用法の詳細は,セクション14.18 " InnoDBとmemcachedの統合"を参照してください。
-
コマンド行形式 ——ignore-builtin-innodb
非推奨 はい システム変数 ignore_builtin_innodb
スコプ グロバル 動的 いいえ 型 ブル このセクションの前半の「
InnoDB
コマンドオプション」の下にある——ignore-builtin-innodb
の説明を参照してください。 -
コマンド行形式 ——innodb-adaptive-flushing = #
システム変数 innodb_adaptive_flushing
スコプ グロバル 動的 はい 型 ブル デフォルト 在
ワクロドに基づいて,
InnoDB
バッファプル内のダティペジをフラッシュする比率を動的に調整するかどうかを指定します。フラッシュ比率を動的に調整する目的は、I/O アクティビティーのバーストを回避することです。この設定はデフォルトで有効になっています。詳細は、セクション14.13.1.2 " InnoDBバッファプルのフラッシュの頻度の構成"を参照してください。一般的なI/Oチュセクション8.5.7 " InnoDBディスクI/Oの最適化"を参照してください。 -
コマンド行形式 ——innodb-adaptive-flushing-lwm = #
導入 5.6.6 システム変数 innodb_adaptive_flushing_lwm
スコプ グロバル 動的 はい 型 数値 デフォルト 10
最小値 0
最大値 70
-
コマンド行形式 ——innodb-adaptive-hash-index = #
システム変数 innodb_adaptive_hash_index
スコプ グロバル 動的 はい 型 ブル デフォルト 在
InnoDB
適応型ハッシュ邮箱ンデックスが有効と無効のどらになっているのかを示します。ワクロドに応じて,適応型ハッシュ邮箱ンデックスの作成を動的に有効または無効にして,クエリのパフォマンスを改善することが望ましい場合があります。適応型ハッシュ邮箱ンデックスがすべてのワクロドに役立つとは限らないため、現実的なワークロードを使用して、有効と無効の両方でベンチマークを実施してください。詳細は、セクション14.2.13.6 "適応型ハッシュ"を参照してください。この変数はデフォルトで有効になっています。
集全球
ステトメントを使用すると,サを再起動せずに,このパラメタを変更できます。この設定を変更するには,超级
権限が必要です。また,サバの起動時に——skip-innodb_adaptive_hash_index
を使用すると,無効にすることができます。適応型ハッシュンデックスを無効にすると,すぐにハッシュテブルが空になります。ハッシュテーブルが空になっても通常の操作は続行でき,ハッシュテーブルを使用していた実行中のクエリーは,代わりにインデックスのBツリーに直接アクセスします。適応型ハッシュンデックスを再度有効にすると,通常の操作時にハッシュテブルが再度移入されます。
innodb_adaptive_max_sleep_delay
コマンド行形式 ——innodb-adaptive-max-sleep-delay = #
導入 5.6.3 システム変数 innodb_adaptive_max_sleep_delay
スコプ グロバル 動的 はい 型 数値 デフォルト 150000
最小値 0
最大値 1000000
現在のワクロドに応じて,
InnoDB
によって自動的にinnodb_thread_sleep_delay
の値が上下に調整されるようにします。ゼロ以外の値に指定すると,最大でinnodb_adaptive_max_sleep_delay
オプションで指定された最大値まで,自動的にinnodb_thread_sleep_delay
値の動的な調整が行われます。値はマイクロ秒数を表しています。このオプションは、InnoDB
スレッド数が16個を上回る高負荷のシステムで役立。(実際には、同時接続数が数百または数千になる MySQL システムの大部分の変数です。)詳細は,セクション14.13.5 " InnoDBのスレッド並列性の構成"を参照してください。
innodb_additional_mem_pool_size
コマンド行形式 ——innodb-additional-mem-pool-size = #
非推奨 5.6.3 システム変数 innodb_additional_mem_pool_size
スコプ グロバル 動的 いいえ 型 数値 デフォルト 8388608
最小値 2097152
最大値 4294967295
デタディクショナリ情報およびその他の内部デタ構造を格納する際に
InnoDB
で使用されるメモリ。アプリケションに存在するテブル数が多いほど,ここで割り当てるメモリ量も多くなります。このプル内のメモリがInnoDB
によって使い果たされると,オペレーティングシステムからのメモリーの割り当てが開始され,MySQLエラーログに警告メッセージが書き込まれます。デフォルトの値は8mバ邮箱トです。この変数は,
InnoDB
の内部メモリアロケタに関連します。これは,innodb_use_sys_malloc
が有効になっている場合は使用されません。MySQL 5.6.3の時点では,innodb_additional_mem_pool_size
は非推奨となり,今後のMySQLリリスで削除される予定です。-
コマンド行形式 ——innodb-api-bk-commit-interval = #
導入 5.6.7 システム変数 innodb_api_bk_commit_interval
スコプ グロバル 動的 はい 型 数値 デフォルト 5
最小値 1
最大値 1073741824
InnoDB
memcachedereplicationンタフェereplicationドル状態の接続が自動コミットされる頻度(秒単位)です。このオプションの使用法の詳細は,セクション14.18 " InnoDBとmemcachedの統合"を参照してください。 -
コマンド行形式 ——innodb-api-disable-rowlock = #
導入 5.6.6 システム変数 innodb_api_disable_rowlock
スコプ グロバル 動的 いいえ 型 ブル デフォルト 从
この変数を使用すると,
InnoDB
memcachedでDML操作が実行されるときに,行ロックが無効になります。デフォルトでは,innodb_api_disable_rowlock
は从
に設定されており,memcachedがgetおよびset操作の行ロックをリクエストします。innodb_api_disable_rowlock
を在
に設定すると,memcachedは行ロックの代わりに,テブルロックをリクエストします。innodb_api_disable_rowlock
オプションは動的ではありません。これはmysqldコマンド行で指定するか,またはMySQL構成ファMySQLルに入力する必要があります。構成は,MySQLサ。 -
コマンド行形式 ——innodb-api-enable-binlog = #
導入 5.6.6 システム変数 innodb_api_enable_binlog
スコプ グロバル 動的 いいえ 型 ブル デフォルト 从
MySQLバ邮箱ナリログとともに,
InnoDB
memcachedプラグ邮箱ンを使用できます。このオプションの使用法の詳細は,セクション14.18 " InnoDBとmemcachedの統合"を参照してください。 -
コマンド行形式 ——innodb-api-enable-mdl = #
導入 5.6.6 システム変数 innodb_api_enable_mdl
スコプ グロバル 動的 いいえ 型 ブル デフォルト 从
InnoDB
memcachedプラグ邮箱ンで使用されるテ邮箱ブルをロックします。これにより,sql数据库ンタフェ,sql数据库スからDDLによって削除または変更できなくなります。このオプションの使用法の詳細は,セクション14.18 " InnoDBとmemcachedの統合"を参照してください。 -
コマンド行形式 ——innodb-api-trx-level = #
導入 5.6.6 システム変数 innodb_api_trx_level
スコプ グロバル 動的 はい 型 数値 デフォルト 0
memcachedeconンタフェスで処理されたクエリ上のトランザクション分離レベルを制御できます。このオプションの使用法の詳細は,セクション14.18 " InnoDBとmemcachedの統合"を参照してください。よく聞く名前に対応する定数は,次のとおりです。
0 =
读未提交
1 =
读过承诺
2 =
可重复读取
3 =
可序列化的
-
コマンド行形式 ——innodb-autoextend-increment = #
システム変数 innodb_autoextend_increment
スコプ グロバル 動的 はい 型 数値 デフォルト(≥5.6.6) 64
デフォルト(≤5.6.5) 8
最小値 1
最大値 1000
InnoDB
の自動拡張システムテブルスペスファereplicationルがいっぱいになったときに,そのサereplicationズを拡張する際の増分サereplicationズ(mバereplicationト単位)です。デフォルト値は,MySQL 5.6.6の時点では64,それよりも前では8です。この変数によって,innodb_file_per_table = 1
を使用した場合に作成されるテブルごとのテブルスペスファ。innodb_autoextend_increment
の値には関係なく、これらのファ以及ルは自動拡張されます。拡張は少量で始まり,その後の拡張は増分が4mbで発生します。 -
コマンド行形式 ——innodb-autoinc-lock-mode = #
システム変数 innodb_autoinc_lock_mode
スコプ グロバル 動的 いいえ 型 数値 デフォルト 1
有効な値 0
1
2
自動邮箱ンクリメント値を生成する際に使用されるロックモドです。許可される値は,「従来」を表す0,「連続」を表す1,または「econンタリブ」を表す2です。セクション14.6.5 " InnoDBでのAUTO_INCREMENT処理"では,これらのモ。
この変数のデフォルトは,1 (「連続」ロックモド)です。
innodb_buffer_pool_dump_at_shutdown
コマンド行形式 ——innodb-buffer-pool-dump-at-shutdown = #
導入 5.6.3 システム変数 innodb_buffer_pool_dump_at_shutdown
スコプ グロバル 動的 はい 型 ブル デフォルト 从
次回再起動時のウォムアッププロセスの時間を短縮するために,MySQLサバのシャットダウン時に,InnoDBのバッファプルにキャッシュされるペジを記録するかどうかを指定します。一般に,
innodb_buffer_pool_load_at_startup
と組み合わせて使用されます。関連情報にいては,セクション14.13.1.5”再起動を高速化するためのInnoDBバッファープールのプリロード”を参照してください。
-
コマンド行形式 ——innodb-buffer-pool-dump-now = #
導入 5.6.3 システム変数 innodb_buffer_pool_dump_now
スコプ グロバル 動的 はい 型 ブル デフォルト 从
InnoDBのバッファプルにキャッシュされるペジをすぐに記録します。一般に,
innodb_buffer_pool_load_now
と組み合わせて使用されます。関連情報にいては,セクション14.13.1.5”再起動を高速化するためのInnoDBバッファープールのプリロード”を参照してください。
-
コマンド行形式 ——innodb-buffer-pool-filename =文件
導入 5.6.3 システム変数 innodb_buffer_pool_filename
スコプ グロバル 動的 はい 型 ファ邮箱ル名 デフォルト ib_buffer_pool
innodb_buffer_pool_dump_at_shutdown
またはinnodb_buffer_pool_dump_now
で生成されるテーブルスペースIDおよびページIDのリストを保持するファイルの名前を指定します。テブルスペスidおよびペジidは,空间,page_id
という形式で保存されます。デフォルトでは,このファイルはInnoDB
デタディレクトリに配置されます。関連情報にいては,セクション14.13.1.5”再起動を高速化するためのInnoDBバッファープールのプリロード”を参照してください。
-
コマンド行形式 ——innodb-buffer-pool-instances = #
システム変数 innodb_buffer_pool_instances
スコプ グロバル 動的 いいえ 型 数値 デフォルト(その他,≥5.6.6) 8
デフォルト(Windows, 32ビットプラットフォ,ム,≥5.6.6) (autosized)
デフォルト(≤5.6.5) 1
最小値 1
最大値 64
InnoDB
のバッファプルが分割される領域の数です。バッファプルが数 G バイトの範囲にあるシステムでは、バッファープールを個別のインスタンスに分割すると、キャッシュされたページに対して異なるスレッドが読み取りおよび書き込みを行うときの競合が減るため、並列性が向上する場合があります。バッファープールに格納される各ページまたはバッファープールから読み取られる各ページは、ハッシュ関数を使用して、バッファープールインスタンスのいずれかにランダムに割り当てられます。各バッファープールは、独自の空きリスト、フラッシュリスト、LRU,およびバッファプルに接続されたその他のすべてのデタ構造を管理し,独自のバッファプル相互排他ロックによって保護されます。このオプションは,
通过innodb_buffer_pool_size
を1gバereplication ereplicationト以上のサereplication ereplicationズに設定した場合にのみ有効になります。指定した合計サopenstackズは,すべてのバッファopenstackプopenstackル間で分割されます。最高の効率を得るには,innodb_buffer_pool_instances
と通过innodb_buffer_pool_size
の組み合わせを,各バッファ。MySQL 5.6.6より前では,デフォルトは1です。MySQL 5.6.6の時点では,デフォルトは8です。ただし,32ビットの Windows システムでは、デフォルトは
通过innodb_buffer_pool_size
の値に依存します。通过innodb_buffer_pool_size
が1.3gバ翻版トよりも大きい場合は,innodb_buffer_pool_instances
のデフォルトが通过innodb_buffer_pool_size
/ 128mバトになり,チャンクごとに個別のメモリます。32ビット版 Windows で単一のバッファープールで必要となる連続したアドレス空間を割り当てることができないという重大なリスクが存在する境界として、1.3G バイトが選択されました。それ以外の場合,デフォルトは1です。
-
コマンド行形式 ——innodb-buffer-pool-load-abort = #
導入 5.6.3 システム変数 innodb_buffer_pool_load_abort
スコプ グロバル 動的 はい 型 ブル デフォルト 从
innodb_buffer_pool_load_at_startup
またはinnodb_buffer_pool_load_now
でトリガされるInnoDBのバッファプルの内容をリストアするプロセスを中断します。関連情報にいては,セクション14.13.1.5”再起動を高速化するためのInnoDBバッファープールのプリロード”を参照してください。
innodb_buffer_pool_load_at_startup
コマンド行形式 ——innodb-buffer-pool-load-at-startup = #
導入 5.6.3 システム変数 innodb_buffer_pool_load_at_startup
スコプ グロバル 動的 いいえ 型 ブル デフォルト 从
MySQLサーバーの起動時に,以前に保持されたときと同じページをロードすることで,InnoDBのバッファプルが自動的にウォムアップされるように指定します。一般に,
innodb_buffer_pool_dump_at_shutdown
と組み合わせて使用されます。関連情報にいては,セクション14.13.1.5”再起動を高速化するためのInnoDBバッファープールのプリロード”を参照してください。
-
コマンド行形式 ——innodb-buffer-pool-load-now = #
導入 5.6.3 システム変数 innodb_buffer_pool_load_now
スコプ グロバル 動的 はい 型 ブル デフォルト 从
サバの再起動を待機せずにデ,InnoDBのバッファプルをすぐにウォムアップします。ベンチマーク時にキャッシュメモリーを既知の状態に戻したり,レポートやメンテナンスのためにクエリーを実行したあとに,MySQLサーバーの通常のワークロードを再開する準備をしたりする際に役立ちます。
関連情報にいては,セクション14.13.1.5”再起動を高速化するためのInnoDBバッファープールのプリロード”を参照してください。
-
コマンド行形式 ——innodb-buffer-pool-size = #
システム変数 通过innodb_buffer_pool_size
スコプ グロバル 動的 いいえ 型 数値 デフォルト 134217728
最小値 5242880
最大値(64ビットプラットフォム) 2 * * 64 - 1
最大値(32ビットプラットフォム) 2 * * 32-1
InnoDB
がテブルおよびバッファプルのサ电子书阅读器ズ(バ电子书阅读器ト単位)です。デフォルト値は128米バイトです。最大値は、CPU アーキテクチャーによって異なります。最大値は、32 ビットシステムでは 4294967295 (2321), 64ビットシステムでは18446744073709551615 (2)64-1)です。32ビットシステムでは、CPU アーキテクチャーおよびオペレーティングシステムに、指定された最大値よりも小さい実用的な最大サイズが課されている可能性があります。バッファープールのサイズが 1G バイトよりも大きい場合に、innodb_buffer_pool_instances
を1よりも大きい値に設定すると,高負荷のサで拡張性を改善できます。この値を大きく設定するほど,テーブル内の同じデータに複数回アクセスするために必要なディスクI / Oが少なくなります。専用のデータベースサーバーでは,これを最大でマシンの物理メモリーサイズの80%まで設定することがあります。次のようなその他の問題が発生した場合は,この値を小さくする準備をしてください。
物理メモリが競合すると,オペレジングが発生する可能性があります。
InnoDB
では,割り当てられた領域の合計が指定されたサイズよりも約10%大きくなるように,バッファーおよび制御構造用に追加のメモリーが予約されています。アドレス空間は隣接しているはすです。これにより,Windows システムで特定のアドレスにロードする DLL に関する問題が発生する可能性があります。
バッファプルを初期化する時間は,ほぼそのサズに比例しています。大規模なンストルでは,この初期化時間が重要となる場合もあります。たとえば,最新の Linux x86_64 サーバーで 10G バイトのバッファープールを初期化するには、約 6 秒かかります。セクション8.9.1 " InnoDBバッファプル"を参照してください。
-
コマンド行形式 ——innodb-change-buffer-max-size = #
導入 5.6.2 システム変数 innodb_change_buffer_max_size
スコプ グロバル 動的 はい 型 数値 デフォルト 25
最小値 0
最大値 50
バッファプルの合計サereplicationズの割合として示した,InnoDBの変更バッファの最大サ邮箱ズです。この値はMySQLサーバーで頻繁に挿入,更新,および削除アクティビティーが発生する場合は大きくし,MySQLサーバーでレポート用に使用されるデータが変更されない場合は小さくするとよいでしょう。一般的なI/Oチュセクション8.5.7 " InnoDBディスクI/Oの最適化"を参照してください。
-
コマンド行形式 ——innodb-change-buffering = #
システム変数 innodb_change_buffering
スコプ グロバル 動的 はい 型 列挙 デフォルト 所有
有効な値 插入
删除
清洗
变化
所有
没有一个
InnoDB
がバッファリングの変更(I / O操作を連続して実行できるように,セカンダリインデックスへの書き込み操作を遅延させる最適化)を実行するかどうかを指定します。許可される値は插入
(挿入操作のバッファリング),删除
(削除操作のバッファリング。厳密に言えば,パージ操作時にあとで削除するインデックスレコードにマークを付ける書き込み),变化
(挿入操作および削除マク操作のバッファリング),清洗
(パジ操作のバッファリング。削除されたインデックスエントリのガベージコレクションが最終的に実行される書き込み),所有
(挿入,削除マ,ク,パ,ジ操作のバッファリング),および没有一个
(操作のバッファリングなし)です。デフォルトは所有
です。詳細にいては,セクション14.13.4 " InnoDB変更バッファリングの構成"を参照してください。一般的なI/Oチュセクション8.5.7 " InnoDBディスクI/Oの最適化"を参照してください。 -
コマンド行形式 ——innodb-checksum-algorithm = #
導入 5.6.3 システム変数 innodb_checksum_algorithm
スコプ グロバル 動的 はい 型 列挙 デフォルト(≥5.6.7) innodb
デフォルト(5.6.6) crc32
デフォルト(≤5.6.5) innodb
有効な値 innodb
crc32
没有一个
strict_innodb
strict_crc32
strict_none
InnoDB
の各テブルスペスの各ディスクブロックに格納されているチェックサムを生成および検証する方法を指定します。MySQL 5.6.3の時点で
innodb_checksums
オプションは,innodb_checksum_algorithm
で置き換えられました。次の値は,互換性を保ために提供されています。innodb_checksum_algorithm = innodb
はinnodb_checksums =对
と同じです。innodb_checksum_algorithm =没有
はinnodb_checksums =了
と同じです。
競合を回避するには,構成ファereplicationルおよびMySQL起動スクリプトから
innodb_checksums
への参照を削除します。値
innodb
は,すべてのMySQLバジョンとの下位互換性があります。値crc32
では,より高速に,変更されたすべてのブロックのチェックサムを計算し,ディスク読み取りごとにチェックサムをチェックするアルゴリズムが使用されます。値没有一个
では,ブロックデータに基づいて値が計算されるのではなく,チェックサムフィールドに定数値が書き込まれます。テブルスペス内のブロックは、古い値、新しい値、およびチェックサムなしの値を混在させて使用でき、データが更新されるにつれ徐々に更新されます。テーブルスペース内のブロックがcrc32
アルゴリズムを使用するように変更されたあとは,関連付けられたテーブルを以前のバージョンのMySQLで読み取ることはできません。strict_ *
形式の機能は,innodb
、crc32
,および没有一个
と同じです。ただし,InnoDB
は,同じテブルスペス内でチェックサム値の混在が発生した場合に停止します。これらのオプションを完全に新しいインスタンスで使用するだけで、はじめてでもすべてのテーブルスペースを設定できます。strict_ *
設定では,ディスクの読み取り時に新しいチェックサム値と古いチェックサム値の両方を受け入れるために,その両方を計算する必要がないため,多少高速になります。次の表には,
没有一个
、innodb
、crc32
オプション値,およびそれぞれに対応するstrict_
オプション値間の相違点を示します。没有一个
、innodb
,およびcrc32
では,特定のタイプのチェックサム値が各データブロックに書き込まれますが,互換性を保つために,読み取り操作中にブロックを検証する際に,その他のチェックサム値のいずれかが受け入れられます。strict_
形式の各パラメタでは,1種類のチェックサムのみが認識されます。これにより,検証が高速になりますが,eンスタンス内のすべてのInnoDB
デタファinnodb_checksum_algorithm
値で作成される必要があります。表14.7 innodb_checksum_algorithmで許可される設定.使用实例
値 生成されるチェックサム(書き込み時) 許可されるチェックサム(読み取り時) 没有一个 定数。 没有一个
、innodb
,またはcrc32
で生成されるチェックサムのいずれか。innodb ソフトウェアで InnoDB
の元のアルゴリズムを使用して計算されたチェックサム。没有一个
、innodb
,またはcrc32
で生成されるチェックサムのいずれか。crc32 crc32
アルゴリズムを使用して計算されたチェックサム(ハードウェアの支援を得て実行される可能性もあります)。没有一个
、innodb
,またはcrc32
で生成されるチェックサムのいずれか。strict_none 定数 没有一个
で生成されるチェックサムのみ。strict_innodb ソフトウェアで InnoDB
の元のアルゴリズムを使用して計算されたチェックサム。innodb
で生成されるチェックサムのみ。strict_crc32 crc32
アルゴリズムを使用して計算されたチェックサム(ハードウェアの支援を得て実行される可能性もあります)。crc32
で生成されるチェックサムのみ。innodb_checksum_algorithm
のデフォルト値はMySQL 5.6.6でinnodb
からcrc32
に変更されましたが,以前のMySQLバInnoDB
デタファルの互換性向上のため,およびMySQL企业备份で使用するために5.6.7でinnodb
に戻されました。検出された制限には,次のものが含まれます。Crc32チェックサムを含む
.ibd
ファイルは,5.6.3より前のMySQLバージョンへのダウングレード中に問題が発生する可能性があります。MySQL5.6.3以降では、ディスクからブロックを読み取るとき、そのブロックの新しいチェックサム値と古いチェックサム値のどちらも正しいとして認識します。それにより、アルゴリズムの設定には関係なく、アップグレードおよびダウングレード中にそのデータブロックの互換性を保証します。新しいチェックサム値で書き込まれたデータが 5.6.3 より前のレベルの MySQL によって処理された場合は、破損しているとしてレポートされる可能性があります。3.8.0までのバジョンのMySQL企业备份は,crc32チェックサムを使用するテブルスペスのバックアップをサポトしていません。MySQL企业备份は,CRC32チェックサムのサポートを3.8.1で(いくつかの制限付きで)追加しています。詳細は,MySQL企业备份3.8.1の変更履歴を参照してください。
crc32
チェックサムアルゴリズムに関する追加情報にいては,セクション14.13.15”チェックサムの高速化のためのCRC32チェックサムアルゴリズムの使用”を参照してください。 -
コマンド行形式 ——innodb-checksums
非推奨 5.6.3 システム変数 innodb_checksums
スコプ グロバル 動的 いいえ 型 ブル デフォルト 在
InnoDB
では,ディスクから読み取られるすべてのテブルスペスペジ上でチェックサム検証を使用することで,ハードウェアの障害やデータファイルの破損に対する追加のフォールトトレランスを実現できます。この検証はデフォルトで有効になっています。特殊な状況(ベンチマクの実行時など)では,このような追加の安全機能は——skip-innodb-checksums
を使用して無効にすることができます。innodb_checksum_algorithm
を使用すると,チェックサムを計算する方法を指定できます。MySQL 5.6.3以降では,このオプションは非推奨となり,
innodb_checksum_algorithm
で置き換えられました。innodb_checksum_algorithm = innodb
はinnodb_checksums =对
(デフォルト)と同じです。innodb_checksum_algorithm =没有
はinnodb_checksums =了
と同じです。innodb_checksum_algorithm
との競合を回避するために、構成ファ以及ルおよび起動スクリプトからすべてのinnodb_checksums
オプションを削除してください。innodb_checksums =了
によって自動的にinnodb_checksum_algorithm =没有
が設定され,innodb_checksums =对
は無視され,innodb_checksum_algorithm
のその他の設定でオバラドされます。 -
コマンド行形式 ——innodb-cmp-per-index-enabled = #
導入 5.6.7 システム変数 innodb_cmp_per_index_enabled
スコプ グロバル 動的 はい 型 ブル デフォルト 从
有効な値 从
在
INFORMATION_SCHEMA。INNODB_CMP_PER_INDEX
テブルで。これらの統計を収集すると負荷が高くなるため、このオプションは、InnoDB
の圧縮済みテーブルに関連するパフォーマンスチューニング時に開発,テスト,またはスレーブのインスタンス上でのみ有効にしてください。 -
コマンド行形式 ——innodb-commit-concurrency = #
システム変数 innodb_commit_concurrency
スコプ グロバル 動的 はい 型 数値 デフォルト 0
最小値 0
最大値 1000
同時にコミットできるスレッドの数です。値を0(デフォルト)にすると,任意の数のトランザクションを同時にコミットすることが許可されます。
innodb_commit_concurrency
の値は,実行時にゼロからゼロ以外(またはその逆)に変更できません。ゼロ以外の値から別のゼロ以外の値に変更することはできます。 innodb_compression_failure_threshold_pct
コマンド行形式 ——innodb-compression-failure-threshold-pct = #
導入 5.6.7 システム変数 innodb_compression_failure_threshold_pct
スコプ グロバル 動的 はい 型 数値 デフォルト 5
最小値 0
最大値 One hundred.
高負荷での圧縮の失敗を回避するために,圧縮されたペジ内のパディングの追加がMySQLで開始されるカットオフポントを設定します。値をゼロにすると、圧縮の効率性をモニターするメカニズムが無効になり、パディングの量が動的に調整されます。
-
コマンド行形式 ——innodb-compression-level = #
導入 5.6.7 システム変数 innodb_compression_level
スコプ グロバル 動的 はい 型 数値 デフォルト 6
最小値 0
最大値 9
InnoDB
の圧縮されたテブルおよびンデックスで使用されるzlib圧縮のレベルを指定します。 innodb_compression_pad_pct_max
コマンド行形式 ——innodb-compression-pad-pct-max = #
導入 5.6.7 システム変数 innodb_compression_pad_pct_max
スコプ グロバル 動的 はい 型 数値 デフォルト 50
最小値 0
最大値 75
圧縮された各ペジ内の空き領域として予約できる最大の割合を指定します。これにより,圧縮されたテーブルまたはインデックスが更新され,データが再度圧縮される可能性があるときに,ページ内のデータおよび変更ログを再編成する余地が得られます。
innodb_compression_failure_threshold_pct
がゼロ以外の値に設定され,圧縮エラの比率がカットオフポ邮箱ントを超えたときにのみ適用されます。-
コマンド行形式 ——innodb-concurrency-tickets = #
システム変数 innodb_concurrency_tickets
スコプ グロバル 動的 はい 型 数値 デフォルト(≥5.6.6) 5000
デフォルト(≤5.6.5) 500
最小値 1
最大値 4294967295
同時に
InnoDB
に入ることができるスレッドの数を決定します。スレッドがInnoDB
に入ろうとしたときに,すでにスレッド数が並列実行の制限に達している場合は,そのスレッドがキューに配置されます。スレッドがInnoDB
に入ることが許可されている場合は,innodb_concurrency_tickets
の値に等しい数の「空きチケット」が付与され,スレッドはそのチケットを使い果たすまで自由にInnoDB
に出入りすることができます。それ以降は,スレッドが次にInnoDB
に入ろうとしたときに,再度並列実行チェックの対象となります(キューに入る対象となる可能性もあります)。MySQL 5.6.6の時点では5000,それよりも前では500です。innodb_concurrency_tickets
値を小さくすると,1、2行しか処理する必要のない小規模なトランザクションと,多数の行を処理する大規模なトランザクションが競合する可能性が高くなります。innodb_concurrency_tickets
値を小さくする欠点は,大規模なトランザクションが完了するまでに何回もキュー間をループする必要があるため,タスクを完了するために必要な時間が長くなる点です。innodb_concurrency_tickets
値を大きくすると,大規模なトランザクションで(innodb_thread_concurrency
で制御される)キュの終了時の位置を待機する時間が短くなり,行を取得する時間が長くなります。また,大規模なトランザクションでは、タスクを完了するために必要なキューとの間の移動も少なくなります。innodb_concurrency_tickets
値を大きくする欠点は,同時に実行する大規模なトランザクションの数が非常に多くなることで,小規模なトランザクションが実行されるまでの待機時間が長くなるため,枯渇する可能性がある点です。innodb_thread_concurrency
値をゼロ以外にすると,大規模なトランザクションと小規模なトランザクション間の適切なバランスを見つけるために,innodb_concurrency_tickets
値を上下に調整する必要がある場合があります。显示引擎innodb状态
レポートには,キューを通過する現時点で実行中のトランザクション用に残されているチケットの数が表示されます。このデタは,INFORMATION_SCHEMA。INNODB_TRX
テブルのTRX_CONCURRENCY_TICKETS
カラムから取得することもできます。詳細は,セクション14.13.5 " InnoDBのスレッド並列性の構成"を参照してください。
-
コマンド行形式 ——innodb-data-file-path =名字
システム変数 innodb_data_file_path
スコプ グロバル 動的 いいえ 型 文字列 デフォルト(≥5.6.7) ibdata1:12M: autoextend
デフォルト(≤5.6.6) ibdata1:10M: autoextend
InnoDB
の各デタファへのパスとそれらのサ邮箱ズです。各デタファルへの完全ディレクトリパスは,ここに指定された各パスにinnodb_data_home_dir
を結合することで形成されます。サ邮箱ズ値にK
、米
,またはG
を追加することで,ファイルサイズがKバイト,Mバイト,またはGバイト(1024米バイト)で指定されます。データファイルのサイズをキロバイト(Kバイト)で指定する場合は,1024の倍数で指定してください。それ以外の場合は,kバ电子书阅读器ト値はもっとも近いメガバト(mバ电子书阅读器ト)の境界で丸められます。ファereplicationルサereplicationズの合計は,わずかに10m ereplicationトを上回る大きさにする必要があります。innodb_data_file_path
を指定しない場合は,デフォルトの動作で,ibdata1
という名前の単一の自動拡張デタファ12mバ。各ファopenstackルのサopenstackズ制限は,オペレopenstackティングシステムによって決定されます。大きいファ邮箱ルをサポートするオペレーティングシステムでは、4G バイトよりも大きいファイルサイズを設定できます。デタファティションを使用することもできます。InnoDB
のテブルスペスファルの構成にいての詳細は,セクション14.3 " InnoDBの構成"を参照してください。 -
コマンド行形式 ——innodb-data-home-dir =路径
システム変数 innodb_data_home_dir
スコプ グロバル 動的 いいえ 型 ディレクトリ名 システムテブルスペス内のすべての
InnoDB
のデタファのディレクトリパスに共通する部分です。この設定によって,innodb_file_per_table
を有効にしたときのfile-per-tableテブルスペスの場所は影響を受けません。デフォルト値は,MySQLの数据
ディレクトリです。値を空の文字列として指定した場合は、innodb_data_file_path
内で完全なファ邮箱ルパスを使用できます。 innodb_disable_sort_file_cache
コマンド行形式 ——innodb-disable-sort-file-cache = #
導入 5.6.4 システム変数 innodb_disable_sort_file_cache
スコプ グロバル 動的 はい 型 ブル デフォルト 从
この変数を有効にすると,マージソート一時ファイル用のオペレーティングシステムファイルシステムのキャッシュが無効になります。その結果、このようなファ以及ルが
O_DIRECT
の同等のものとともに開きます。この変数はMySQL 5.6.4で追加されました。-
コマンド行形式 ——innodb-doublewrite
システム変数 innodb_doublewrite
スコプ グロバル 動的 いいえ 型 ブル デフォルト 在
この変数を有効にすると(デフォルト),
InnoDB
にすべてのデタが2回(まず二重書き込みバッファ,次に実際のデタファに)格納されます。デタの整合性や失敗の可能性の懸念より,ベンチマ,——skip-innodb_doublewrite
を使用すれば,この変数を無効にすることができます。 -
コマンド行形式 ——innodb-fast-shutdown (= #)
システム変数 innodb_fast_shutdown
スコプ グロバル 動的 はい 型 数値 デフォルト 1
有効な値 0
1
2
InnoDB
のシャットダウンモドです。この値を0にすると,InnoDB
は低速シャットダウン,完全なパジ,および挿入バッファのマジを実行してから,シャットダウンします。この値を1(デフォルト)にすると,InnoDB
はシャットダウン時に,これらの操作をスキップします。このプロセスは,高速シャットダウンと呼ばれます。この値を2にすると,InnoDB
はMySQLがクラッシュした場合と同様に,そのログをフラッシュし,コールドシャットダウンを実行します。コミットされていないトランザクションは失われませんが,クラッシュリカバリ操作によって次回の起動時間が長くなります。低速シャットダウンには数分間かかる可能性があり,大量のデータがバッファーに存在する極端なケースでは,数時間かかる可能性もあります。MySQLのメジャーリリース間でアップグレードまたはダウングレードを行う前には、アップグレードプロセスによってファイル形式が更新される場合に備えて、すべてのデータファイルが完全に準備されるように、低速シャットダウン技術を使用してください。
データが破損するリスクがある場合に,完全な最速のシャットダウンを行うには,緊急事態またはトラブルシューティングの状況で
innodb_fast_shutdown = 2
を使用してください。 -
コマンド行形式 ——innodb-file-format = #
システム変数 innodb_file_format
スコプ グロバル 動的 はい 型 文字列 デフォルト 羚羊
有効な値 羚羊
梭鱼
新しい
InnoDB
テブルで使用されるファ邮箱ル形式です。現在は,羚羊
および梭鱼
がサポトされています。これは,独自のテブルスペスを持テブルにのみ適用されるため,これを有効にするには,innodb_file_per_table
が有効になっている必要があります。テブルの圧縮などの特定のInnoDB機能を使用するには,梭鱼ファ邮箱ル形式が必要です。InnoDB
のテブル(算法=复制
を再作成するALTER TABLE
操作では,現在のinnodb_file_format
設定が使用される(前述の状況が適用される)ことに注意してください。 -
コマンド行形式 ——innodb-file-format-check = #
システム変数 innodb_file_format_check
スコプ グロバル 動的 いいえ 型 ブル デフォルト 在
この変数をサバの起動時に1または0に設定すると,
InnoDB
がシステムテブルスペスのファ邮箱ル形式タグ(羚羊
や梭鱼
など)をチェックするかどうかを有効または無効にすることができます。チェックされたタグが最新バジョンのInnoDB
でサポトされているよりも大きい場合は,エラが発生し,InnoDB
は起動されません。このタグの方が大きくない場合は,InnoDB
によってinnodb_file_format_max
の値がファ邮箱ル形式タグに設定されます。注記デフォルト値が
在
または从
と表示されることがあるにもかかわらず,このオプションを構成ファイルまたはコマンド行でオンまたはオフに切り替えるには,常に数値1または0を使用します。 -
コマンド行形式 ——innodb-file-format-max = #
システム変数 innodb_file_format_max
スコプ グロバル 動的 はい 型 文字列 デフォルト 羚羊
有効な値 羚羊
梭鱼
サバの起動時に
InnoDB
によって,この変数の値がシステムテブルスペスのファ邮箱ル形式タグ(羚羊
や梭鱼
など)に設定されます。サバで「大きい」ファル形式のテブルが作成されたり,開かれたりすると,innodb_file_format_max
の値がそのファ邮箱ル形式に設定されます。 -
コマンド行形式 ——innodb-file-per-table
システム変数 innodb_file_per_table
スコプ グロバル 動的 はい 型 ブル デフォルト(≥5.6.6) 在
デフォルト(≤5.6.5) 从
innodb_file_per_table
が有効になっている(5.6.6以上のデフォルト)場合,InnoDB
では,新たに作成された各テーブルのデータおよびインデックスがシステムテーブルスペースではなく,個別の.ibd
ファ邮箱ルに格納されます。これらのInnoDB
テブル用のストレジは,テブルが削除されたり,切り捨てられたりすると再利用されます。このように設定すると,テブルの圧縮などのその他のいくかのInnoDB
機能が有効になります。このような機能,およびfile-per-tableテーブルスペースを使用する利点および欠点についての詳細は,セクション14.5.2 " InnoDB File-Per-Tableモド"を参照してください。ALTER TABLE
でテブルが再作成されるケス(算法=复制
)では,innodb_file_per_table
を有効にすることは,ALTER TABLE
操作によってInnoDB
テブルがシステムテブルスペスから個々の.ibd
ファ邮箱ルに移動されることも意味することに注意してください。innodb_file_per_table
を無効にすると,InnoDB
ではすべてのテブルおよびンデックス用のデタが,システムテブルスペスを構成するIbdataファルに格納されます。このように設定すると,删除表
や截断表
などの操作で,ファ。これは,ストレージデバイス全体が MySQL データ専用になっているサーバー環境に最適です。システムテーブルスペースは縮小されず、ンスタンス内のすべてのデタベスにわたって共有されないため,innodb_file_per_table =了
のときは,領域が制約されているシステムで一時デタを大量にロドすることは回避してください。このような場合は,領域を再利用するためにインスタンス全体を削除できるように,個別のインスタンスを設定します。MySQL 5.6.6の時点では,デフォルトで
innodb_file_per_table
が有効になっています。それよりも前では,無効になっています。MySQL5.5または5.1との下位互換性が懸念事項となっている場合は、これを無効にすることを検討してください。これにより、ALTER TABLE
によってInnoDB
テブルがシステムテブルスペスから個々の.ibd
ファ邮箱ルに移動することが回避されます。innodb_file_per_table
は動的であり,集全球
を使用して在
または从
に設定できます。このパラメタは,MySQL構成ファ邮箱ル(my.cnf
またはmy.ini
)でも設定できますが,このためにはサバをシャットダウンしてから再起動する必要があります。このパラメタの値を動的に変更するには,
超级
権限が必要です。動的に変更すると、すべての接続の操作がすぐに影響を受けます。 -
導入 5.6.6 システム変数 innodb_flush_log_at_timeout
スコプ グロバル 動的 はい 型 数値 デフォルト 1
最小値 1
最大値 2700
ログを
N
秒ごとに書き込んで,フラッシュします。innodb_flush_log_at_timeout
はMySQL 5.6.6で導入されました。フラッシュを減らし、バイナリロググループのコミット時のパフォーマンスへの影響を回避するために、フラッシュ間のタイムアウト期間を長くすることができます。MySQL 5.6.6 よりも前では、フラッシュの頻度は 1 秒ごとに 1 回でした。innodb_flush_log_at_timeout
のデフォルト設定も1秒ごとに1回です。 innodb_flush_log_at_trx_commit
コマンド行形式 ——innodb-flush-log-at-trx-commit (= #)
システム変数 innodb_flush_log_at_trx_commit
スコプ グロバル 動的 はい 型 列挙 デフォルト 1
有効な値 0
1
2
コミット操作に対する厳密な酸コンプライアンスと,コミット関連のI / O操作が再編成およびバッチ処理されるときに実現可能な高いパフォーマンスとの間のバランスを制御します。デフォルト値を変更するとパフォーマンスを改善できますが,クラッシュ時にトランザクションが最大で1秒間失われる可能性があります。
完全にacidコンプラ1を使用する必要があります。この値を使用すると,トランザクションコミットのたびに,
InnoDB
のログバッファの内容がログファ邮箱ルに書き込まれ、ログファ以及ルがディスクにフラッシュされます。値を0にすると,約1秒ごとに1回,
InnoDB
のログバッファの内容がログファ。ログバッファからログファルに書き込みは,トランザクションコミット時には実行されません。プロセスのスケジューリングの問題が原因で,1秒ごとに1回のフラッシュが毎秒発生する100%の保証はありません。ディスク操作へのフラッシュは約1秒ごとに1回しか発生しないため,任意のmysqldプロセスがクラッシュすると,トランザクションが最大で1秒間失われる可能性があります。値を2にすると,トランザクションコミットのたびに,
InnoDB
のログバッファーの内容がログファイルに書き込まれ,約1秒ごとに1回ログファイルがディスクにフラッシュされます。プロセスのスケジューリングの問題が原因で,1秒ごとに1回のフラッシュが毎秒発生する100%の保証はありません。ディスク操作へのフラッシュは約1秒ごとに1回しか発生しないため,オペレーティングシステムがクラッシュしたり,停電が発生したりすると,トランザクションが最大で1秒間失われる可能性があります。MySQL 5.6.6の時点では,
InnoDB
でのログフラッシュの頻度がinnodb_flush_log_at_timeout
で制御されます。これにより,ログフラッシュの頻度をN
秒間に設定できます(ここで,N
は1……2700
で,デフォルト値は1です)。ただし,任意のmysqldプロセスがクラッシュすると,トランザクションが最大でN
秒間消失する可能性があります。innodb_flush_log_at_trx_commit
の設定とは関係なく,ddlの変更やその他のInnoDB
アクティビティによって,InnoDB
のログがフラッシュされます。InnoDB
のクラッシュリカバリは,innodb_flush_log_at_trx_commit
の設定に関係なく機能します。トランザクションは完全に適用されるか、完全に消去されるかのいずれかです。
トランザクションで
InnoDB
が使用されるレプリケションセットアップの持続性および一貫性を保場合:バナリロギングが有効になっている場合は,
sync_binlog = 1
を設定します。常に
innodb_flush_log_at_trx_commit = 1
を設定します。
注意多くのオペレーティングシステムや一部のディスクハードウェアは,ディスクへのフラッシュ操作を行なったと欺きます。フラッシュが行われていなくても,行われたとmysqldに通知される可能性があります。そのため,1を設定してもトランザクションの持続性は保証されず,最悪のケ,スでは,停電によって
InnoDB
のデタが破損する可能性もあります。バッテリーバックアップのディスクキャッシュをSCSIディスクコントローラ内やディスク自体で使用すると,ファイルフラッシュの速度が上がり,操作が安全になります。ハドウェアキャッシュ内でディスク書き込みのキャッシュを無効にするために,Unixコマンドhdparmを使用してみたり,ハドウェアベンダ固有のその他のコマンドを使用したりすることもできます。-
コマンド行形式 ——innodb-flush-method =名字
システム変数 innodb_flush_method
スコプ グロバル 動的 いいえ 型 文字列 デフォルト(Windows) async_unbuffered
デフォルト(Unix) fsync
有効な値(Unix,≥5.6.7) fsync
O_DSYNC
O_DIRECT
O_DIRECT_NO_FSYNC
有効な値(Unix,≤5.6.6) fsync
O_DSYNC
O_DIRECT
InnoDB
のデタファおよびログファ邮箱ルにデタをフラッシュする際に使用される方法を定義します。これにより,I/O スループットが影響を受ける可能性があります。この変数は、Unix および Linux システムでのみ構成可能です。Windows システムでは、フラッシュ方法は常にasync_unbuffered
であり,変更できません。innodb_flush_method
オプションの内容は,次のとおりです。fsync
:InnoDB
はfsync ()
システムコルを使用して,デ。fsync
はデフォルト設定です。O_DSYNC
:InnoDB
は,O_SYNC
を使用してログファルを開いてフラッシュし,fsync ()
を使用してデタファ。さまざまな種類のUnixで問題が発生しているため,InnoDB
では直接O_DSYNC
が使用されません。O_DIRECT
:InnoDB
は,O_DIRECT
(Solarisでは译:()
)を使用してデタファルを開き,fsync ()
を使用してデタファルの両方をフラッシュします。このオプションは,一部の GNU/Linux バージョン、FreeBSD、および Solaris で使用可能です。O_DIRECT_NO_FSYNC
:InnoDB
は,i / oのフラッシュ時にO_DIRECT
を使用しますが,後続のfsync ()
システムコルはスキップします。この設定は,一部のタイプのファイルシステムには適していますが、その他には適していません。たとえば、XFS には適していません。たとえば、使用中のファイルシステムですべてのファイルメタデータを保持するために、fsync ()
が必要であるのかどうかが不明な場合は,代わりにO_DIRECT
を使用してください。このオプションはMySQL 5.6.7(错误# 11754304,错误# 45892)で導入されました。
各設定によるパフォマンスへの影響度は,ハ。使用する設定を決定したり,デフォルト設定のままにするかどうかを決定したりするには,特定の構成でベンチマークを実施します。設定ごとに
fsync ()
呼び出しの全体数を確認するには,Innodb_data_fsyncs
ステタス変数を調査します。ワクロドに読み取り操作と書き込み操作を混在させると、一部の設定での実行が影響を受ける可能性があります。たとえば、ハードウェア RAID コントローラおよびバッテリーでバックアップされる書き込みキャッシュが搭載されたシステムでは、InnoDB
のバッファープールとオペレーティングシステムのファイルシステムキャッシュ間での二重バッファリングを回避する際に,O_DIRECT
が役立ことがあります。InnoDB
のデ选择
ステトメントを含む読み取り負荷の高いワクロドで,デフォルト値またはO_DSYNC
の速度が速くなる可能性があります。このパラメタは,必ず,本番環境が反映されたハ。一般的なI/Oチュセクション8.5.7 " InnoDBディスクI/Oの最適化"を参照してください。 -
コマンド行形式 ——innodb-flush-neighbors
導入 5.6.3 システム変数 innodb_flush_neighbors
スコプ グロバル 動的 はい 型 列挙 デフォルト 1
有効な値 0
1
2
InnoDBのバッファプルからペジをフラッシュすると,同じエクステント内のその他のダティペジもフラッシュされるかどうかを指定します。
デフォルト値の1では,バッファープールから同じエクステント内の連続するダーティーページがフラッシュされます。
0を設定すると,
innodb_flush_neighbors
がオフになり,その他のダティ。2を設定すると、同じエクステント内のダティ。
テブルデタが従来の硬盘驱动器ストレジデバ,1回の操作でこのような隣接ペジをフラッシュすると,さまざまな時間に個々のページをフラッシュする場合と比較して,(主にディスクシーク操作の)I / Oオーバーヘッドが削減されます。テブルデタが固态硬盘上に格納されている場合は,シーク時間が重要な要素ではないため,この設定をオフにすれば,書き込み操作を分散できます。一般的なI/Oチュセクション8.5.7 " InnoDBディスクI/Oの最適化"を参照してください。
-
コマンド行形式 ——innodb-flushing-avg-loops = #
導入 5.6.6 システム変数 innodb_flushing_avg_loops
スコプ グロバル 動的 はい 型 数値 デフォルト 30.
最小値 1
最大値 1000
InnoDBが以前に計算されたフラッシュ状態のスナップショットを保持する繰り返しの数です。これにより,適応型フラッシュがワクロドの変更に対応する速度が制御されます。この値を大きくすると,ワクロドが変化するに,フラッシュ操作の速度が円滑か徐々に変化します。この値を小さくすると,適応型フラッシュがワクロドの変化にすばやく適応します。これにより,ワクロドが突然に増減した場合に、フラッシュアクティビティーが急増する可能性があります。
-
コマンド行形式 ——innodb-force-load-corrupted
導入 5.6.3 システム変数 innodb_force_load_corrupted
スコプ グロバル 動的 いいえ 型 ブル デフォルト 从
InnoDBの起動時に,破損マクが付けられたテブルをロドできます。トラブルシューティング時に,何も対処しなければアクセスできないデータをリカバリする際にのみ使用してください。トラブルシュティングが完了したら,この設定をオフに戻して,サを再起動します。
-
コマンド行形式 ——innodb-force-recovery = #
システム変数 innodb_force_recovery
スコプ グロバル 動的 いいえ 型 数値 デフォルト 0
最小値 0
最大値 6
クラッシュリカバリモドです。一般に,重大なトラブルシューティングの状況でのみ変更されます。指定可能な値は 0 から 6 までです。これらの値の意味および
innodb_force_recovery
に関する重要な情報にいては,セクション14.19.2 " InnoDBのリカバリの強制的な実行"を参照してください。警告緊急状況でのみ,この変数を0よりも大きい値に設定してください。これにより,
InnoDB
を起動し,テブルをダンプできるようになります。安全対策として,innodb_force_recovery
を0よりも大きくすると,InnoDB
で插入
、更新
,または删除
操作が回避されます.また,5.6.15の時点では,innodb_force_recovery
の設定を4よりも大きくすると,InnoDB
が読み取り専用モドになります。このような制約のために,
——relay-log-info-repository =表
や——master-info-repository =表
などのレプリケションオプションによってInnoDB
内のテーブルに情報が格納されると,レプリケーション管理コマンドに失敗し,エラーが発生する可能性があります。 -
導入 5.6.4 システム変数 innodb_ft_aux_table
スコプ グロバル 動的 はい 型 文字列 全文
ンデックスを含むInnoDB
テブルの修飾名を指定します。この変数は診断のために使用され,実行時にのみ設定できます。例:set global innodb_ft_aux_table = 'test/t1';
この変数を起動時に設定しようとすると,「选项“——innodb-ft-aux-table”不能带参数」エラが発生し,起動が中止されます。この変数を
形式の名前に設定すると,db_name
/table_name
INFORMATION_SCHEMA
テブルINNODB_FT_INDEX_TABLE
、INNODB_FT_INDEX_CACHE
、INNODB_FT_CONFIG
、INNODB_FT_DELETED
,およびINNODB_FT_BEING_DELETED
に,指定されたテンデックスに関する情報が表示されます。 -
コマンド行形式 ——innodb-ft-cache-size = #
導入 5.6.4 システム変数 innodb_ft_cache_size
スコプ グロバル 動的 いいえ 型 数値 デフォルト(≥5.6.10) 8000000
デフォルト(≥5.6.4,≤5.6.9) 32000000
最小値 1600000
最大値 80000000
InnoDB
の全文検索インデックスのキャッシュ用に割り当てられたメモリー量(バイト単位)です。InnoDB
の全文
e .ンデックスの作成時に,この量の解析済みドキュメントがメモリ.内に保持されます。innodb_ft_cache_size
のサ管理员ズ制限に達すると,管理员ンデックスの挿入および更新のみがディスクにコミットされます。innodb_ft_cache_size
では、キャッシュサ。すべてのテブルにグローバルな制限を設定する方法については、innodb_ft_total_cache_size
を参照してください。 -
コマンド行形式 ——innodb-ft-enable-diag-print = #
導入 5.6.4 システム変数 innodb_ft_enable_diag_print
スコプ グロバル 動的 はい 型 ブル デフォルト(≥5.6.7) 从
デフォルト(≤5.6.6) 在
追加の全文検索(fts)診断の出力を有効にするかどうかを指定します。このオプションは,主に高度な FTS デバッグのために使用され、大部分のユーザーには関心がないものです。出力はエラーログに記録され、次のような情報が含まれています。
FTS邮箱ンデックス同期の進行状況(FTSキャッシュ制限に達したとき)。例:
FTS SYNC for table test, deleted count: 100 size: 10000 bytes SYNC words: 100
FTS最適化の進行状況。例:
FTS_OPTIMIZE:对“mysql”进行优化
FTS网站ンデックス構築の進行状況。例:
处理的文档数量:1000
FTSクエリーでは,クエリー解析のツリー,単語の重み,クエリーの処理時間,およびメモリーの使用状況が出力されます。例:
FTS搜索处理时间:1秒:100毫秒:行10000全搜索内存:245666(字节),行10000
-
コマンド行形式 ——innodb-ft-enable-stopword = #
導入 5.6.4 システム変数 innodb_ft_enable_stopword
スコプ グロバル 動的 はい 型 ブル デフォルト 在
ンデックスの作成時に,一連のストップワドが
InnoDB
の全文
ンデックスに関連付けられることを指定します。innodb_ft_user_stopword_table
オプションが設定されている場合は,そのテブルからストップワドが取得されます。そうでなければ,innodb_ft_server_stopword_table
オプションが設定されている場合は,そのテブルからストップワドが取得されます。それ以外の場合は,組み込みのデフォルトストップワドセットが使用されます。 -
コマンド行形式 ——innodb-ft-max-token-size = #
導入 5.6.4 システム変数 innodb_ft_max_token_size
スコプ グロバル 動的 いいえ 型 数値 デフォルト 84
最小値 10
最大値 252
InnoDBの
全文
ンデックスに格納されている単語の最大長です。この値に制限を設定すると,実在の単語ではなく,検索語句になる可能性の低い英字の任意のコレクションや長いキーワードが省略されることで,インデックスのサイズが削減されるため,クエリーの速度が上がります。 -
コマンド行形式 ——innodb-ft-min-token-size = #
導入 5.6.4 システム変数 innodb_ft_min_token_size
スコプ グロバル 動的 いいえ 型 数値 デフォルト 3.
最小値 0
最大値 16
InnoDBの
全文
ンデックスに格納されている単語の最小長です。この値を大きくすると,検索のコンテキストで重要となる可能性の低い一般的な単語(「一个」や「来」などの英単語)が省略されることで,インデックスのサイズが削減されるため,クエリーの速度が上がります。内容でCJK(中国語,日本語,韓国語)文字セットが使用されている場合は,値1を指定します。 -
コマンド行形式 ——innodb-ft-num-word-optimize = #
導入 5.6.4 システム変数 innodb_ft_num_word_optimize
スコプ グロバル 動的 はい 型 数値 デフォルト 2000
InnoDB
の全文
ンデックスでの各优化表
操作時に処理される単語数です。全文検索インデックスを含むテーブルへの一括挿入または一括更新操作では,すべての変更を組み込むために大量のインデックスのメンテナンスが必要となる可能性があるため,それぞれが最後に終了した場所から再開する一連の优化表
ステトメントを実行するとよいでしょう。 -
コマンド行形式 ——innodb-ft-result-cache-limit = #
導入 5.6.13 システム変数 innodb_ft_result_cache_limit
スコプ グロバル 動的 はい 型 数値 デフォルト 2000000000
最小値 1000000
最大値(Windows,≥5.6.13,≤5.6.16) 2 * * 32-1
最大値(Unix, 64ビットプラットフォ,ム,≥5.6.13,≤5.6.16) 2 * * 64 - 1
最大値(Unix, 32ビットプラットフォ,ム,≥5.6.13,≤5.6.16) 2 * * 32-1
最大値(≥5.6.17) 2 * * 32-1
FTSクエリごとまたはスレッドごとに,(バト単位で定義された)
InnoDB
の全文検索(fts)クエリ結果のキャッシュ制限です。中間および最終のInnoDB
FTSクエリ結果は,メモリ内で処理されます。InnoDB
のFTSクエリー結果が非常に大きい(何百万や何億もの行数など)場合に,過剰なメモリー消費を回避するには,innodb_ft_result_cache_limit
を使用してInnoDB
のFTSクエリズ制限を課します。メモリは,ftsクエリの処理時に必要に応じて割り当てられます。結果のキャッシュサイズ制限に達すると,クエリーで最大限に許可されるメモリー量を超えたことを示すエラーが返されます。MySQL 5.6.17の時点では,すべてのプラットフォームタイプおよびプラットフォームビットサイズに対応した
innodb_ft_result_cache_limit
の最大値は,2**32-1です。Bug #71554。 innodb_ft_server_stopword_table
コマンド行形式 ——innodb-ft-server-stopword-table = db_name / table_name
導入 5.6.4 システム変数 innodb_ft_server_stopword_table
スコプ グロバル 動的 はい 型 文字列 デフォルト 零
このオプションは,すべての
InnoDB
テブルに対応した独自のInnoDB
の全文
帐号ンデックスストップワ帐号ドリストを指定する際に使用されます。特定のInnoDB
テブルに独自のストップワドリストを構成するには,innodb_ft_user_stopword_table
を使用します。
の形式で,db_name
/table_name
innodb_ft_server_stopword_table
をストップワドリストを含むテブルの名前に設定します。innodb_ft_server_stopword_table
を構成する前に,ストップワドテブルが存在する必要があります。全文
ンデックスを作成する前に,innodb_ft_enable_stopword
を有効にして,innodb_ft_server_stopword_table
オプションを構成する必要あります。ストップワドテブルは,
价值
という名前の単一のVARCHAR
カラムを含むInnoDB
テブルにする必要があります。詳細は,セクション12.9.4 "全文ストップワド"を参照してください。
-
コマンド行形式 ——innodb-ft-sort-pll-degree = #
導入 5.6.4 システム変数 innodb_ft_sort_pll_degree
スコプ グロバル 動的 いいえ 型 数値 デフォルト 2
最小値 1
最大値 32
検索邮箱ンデックスの構築時に,
InnoDB
の全文
インデックス内のテキストのインデックス作成およびトークン化を行う際に,並列して使用されるスレッド数です。使用法の追加情報にいては,innodb_sort_buffer_size
を参照してください。 -
コマンド行形式 ——innodb-ft-total-cache-size = #
導入 5.6.13 システム変数 innodb_ft_total_cache_size
スコプ グロバル 動的 いいえ 型 数値 デフォルト 640000000
最小値 32000000
最大値 1600000000
すべてのテブルに対応した
InnoDB
の全文
検索openstackンデックスキャッシュ用に割り当てられた合計メモリopenstack量(バopenstackト単位)です。それぞれが全文検索インデックスを持つ多数のテーブルを作成すると,使用可能なメモリーの大部分が消費される可能性があります。innodb_ft_total_cache_size
では,過剰なメモリー消費を回避する際に役立つ,すべての全文検索インデックスに対応したグローバルなメモリー制限が定義されます。econンデックス操作でグロバルな制限に達すると,econ強制的な同期がトリガされます。 -
コマンド行形式 ——innodb-ft-user-stopword-table = db_name / table_name
導入 5.6.4 システム変数 innodb_ft_user_stopword_table
スコプ グロバル,セッション 動的 はい 型 文字列 デフォルト 零
このオプションは,特定のテブルに独自の
InnoDB
の全文
帐号ンデックスストップワ帐号ドリストを指定する際に使用されます。すべてのInnoDB
テブル用に独自のストップワドリストを構成するには,innodb_ft_server_stopword_table
を使用します。
の形式で,db_name
/table_name
innodb_ft_user_stopword_table
をストップワドリストを含むテブルの名前に設定します。innodb_ft_user_stopword_table
を構成する前に,ストップワドテブルが存在する必要があります。全文
ンデックスを作成する前に,innodb_ft_enable_stopword
を有効にして,innodb_ft_user_stopword_table
オプションを構成する必要あります。ストップワドテブルは,
价值
という名前の単一のVARCHAR
カラムを含むInnoDB
テブルにする必要があります。詳細は,セクション12.9.4 "全文ストップワド"を参照してください。
-
コマンド行形式 ——innodb-io-capacity = #
システム変数 innodb_io_capacity
スコプ グロバル 動的 はい 型 数値 デフォルト 200
最小値 One hundred.
最大値(64ビットプラットフォム) 2 * * 64 - 1
最大値(32ビットプラットフォム) 2 * * 32-1
innodb_io_capacity
パラメタは,InnoDB
バックグラウンドタスクで実行されるI/Oアクティビティ(バッファプルからのペジのフラッシュや挿入バッファからのデタのマジなど)に上限を設定します。デフォルト値は200です。高いI / Oレートを処理できる高負荷のシステムでは,サーバーの起動時に大きい値を設定すると,サーバーが高いレートの行変更に関連付けられたバックグラウンドメンテナンス作業を処理できるようになります。innodb_io_capacity
の制限は,すべてのバッファ。ダティペジがフラッシュされるとき,innodb_io_capacity
制限は,バッファ。個別の5400 RPMまたは7200 RPMドライブが搭載されたシステムでは,元のデフォルトの
One hundred.
まで値を小さくするとよいでしょう。このパラメータはほぼ,システムが1秒あたりに実行できるI / O操作の数に設定するようにしてください。理想的には,この設定はできるだけ小さく保ます。ただし,これらのバックグラウンドアクティビティーに遅延が発生するほど小さくしないでください。値が大きすぎる場合は、データがバッファープールおよび挿入バッファーから瞬時に削除されるため、キャッシュを使用する重要な利点が得られません。
この値は約100 IOPSを実行できる旧世代のディスクドライブで実現可能なIOPS (I / O操作每秒)の推定比率を表します。現在のデフォルトの200は最新のストレージデバイスがさらに高いI / Oレートを処理できることを反映しています。
一般に,
InnoDB
のI / Oで使用されるドライブ(特に,高い数値のIOPSを処理できる高速ドライブ)の数に応じて,値を大きくすることができます。たとえば,InnoDB
用に複数のディスクまたはソリッドステートディスクを使用するシステムでは,このパラメータを制御する機能の利点が得られる可能性が高くなります。非常に大きい数値も指定できますが,実際にはこのような大きな値にすると,利点を得られるとしてもわずかです。たとえば,100万は非常に大きい値と考えられます。
innodb_io_capacity
の値は,innodb_io_capacity_max
で定義された最大値まで,100以上の任意の数値に設定できます。デフォルト値は200
です。このパラメタの値はMySQLオプションファル(my.cnf
またはmy.ini
)で設定するか,あるいは集全球
コマンド(これには.超级
権限が必要です)で動的に変更できます。このオプションに関する詳細なガereplicationドラereplicationンにereplicationいては,セクション14.13.8 " InnoDBマスタスレッドのI/Oレトの構成"を参照してください。InnoDBのI/O パフォーマンスに関する一般的な情報については、セクション8.5.7 " InnoDBディスクI/Oの最適化"を参照してください。
-
コマンド行形式 ——innodb-io-capacity-max = #
導入 5.6.6 システム変数 innodb_io_capacity_max
スコプ グロバル 動的 はい 型 数値 デフォルト(Windows, 64ビットプラットフォム) 2000
デフォルト(Unix, 64ビットプラットフォ,ム) 看描述
デフォルト(32ビットプラットフォム) 看描述
最小値 2000
最大値(Windows, 64ビットプラットフォム) 2 * * 32-1
最大値(Unix, 64ビットプラットフォ,ム) 2 * * 64 - 1
最大値(32ビットプラットフォム) 2 * * 32-1
緊急時に
innodb_io_capacity
の設定を拡張する際に,InnoDB
で許可されている上限です。起動時にinnodb_io_capacity
の設定を指定し,innodb_io_capacity_max
に値を指定しない場合は,innodb_io_capacity_max
のデフォルト値がinnodb_io_capacity
の2倍となり,下限が2000となります。また,2000は初期のデフォルトinnodb_io_capacity_max
構成値です。innodb_io_capacity_max
設定は,すべてのバッファ。MySQL 5.6開発中の短期間は,この変数は
innodb_max_io_capacity
と呼ばれていました。MySQL5.6.7では、innodb_io_capacity
オプションとの関係を強調するために,innodb_io_capacity_max
という名前に変更されました。 -
コマンド行形式 ——innodb-large-prefix
導入 5.6.3 システム変数 innodb_large_prefix
スコプ グロバル 動的 はい 型 ブル デフォルト 从
このオプションを有効にすると,
动态
および压缩
行フォマットを使用するInnoDB
テブルで,767バ(最大で3072バ)帐号ンデックスキ帐号プリフィクスが許可されます。(このようなテーブルの作成には、innodb_file_format =梭鱼
およびinnodb_file_per_table = true
のオプション値も必要になります)さまざまな設定でインデックスキープリフィクスに関連付けられた関連性の最大値については,セクション14.6.7 " InnoDBテブル上の制限"を参照してください。 -
コマンド行形式 ——innodb-lock-wait-timeout = #
システム変数 innodb_lock_wait_timeout
スコプ グロバル,セッション 動的 はい 型 数値 デフォルト 50
最小値 1
最大値 1073741824
行ロックが解除されるまで
InnoDB
トランザクションが待機する時間の長さ(秒単位)です。デフォルト値は50秒です。別のInnoDB
トランザクションでロックされている行へのアクセスを試みるトランザクションは,行への書き込みアクセスを最大でこの秒数間待機してから,次のエラーを発行します。错误1205 (HY000):锁定等待超时超过;尝试重新启动事务
ロック待機のタ翻版ムアウトが発生すると,(トランザクション全体ではなく)現在のステ翻版トメントがロルバックされます。トランザクション全体をロルバックするには,
——innodb_rollback_on_timeout
オプションを付けてサバを起動します。セクション14.19.4 " InnoDBのエラ処理"も参照してください。高度に邮箱ンタラクティブなアプリケ邮箱ションまたはOLTPシステムでは,ユーザーのフィードバックをすばやく表示したり,あとで処理するために更新をキューに入れたりするために,この値を小さくするとよいでしょう。長時間実行されるバックエンド操作(その他の大規模な挿入操作や更新操作が完了するまで待機するデータウェアハウスでの変換ステップなど)では,この値を大きくするとよいでしょう。
innodb_lock_wait_timeout
はInnoDB
の行ロックにのみ適用されます。MySQLのテブルロックはInnoDB
内部では発生せず、このタ。デッドロックは
InnoDB
によってすぐに検出され,デッドロックになったトランザクションのいずれかがロールバックされるため,デッドロックにはロック待機のタイムアウト値が適用されません。innodb_lock_wait_timeout
は,実行時に集全球
または设置会话
ステトメントとともに設定できます。全球
値を変更するには,超级
権限が必要です。これを変更すると、それ以降に接続するすべてのクラ以及アントの操作が影響を受けます。任意のクラ邮箱アントがinnodb_lock_wait_timeout
の会话
設定を変更でき、そのクラ以及アントのみが影響を受けます。 innodb_locks_unsafe_for_binlog
コマンド行形式 ——innodb-locks-unsafe-for-binlog
非推奨 5.6.3 システム変数 innodb_locks_unsafe_for_binlog
スコプ グロバル 動的 いいえ 型 ブル デフォルト 从
この変数によって,
InnoDB
が検索および邮箱ンデックススキャンでギャップロックを使用する方法が影響を受けます。MySQL5.6.3の時点では、innodb_locks_unsafe_for_binlog
は非推奨となり,今後のMySQLリリスで削除される予定です。通常、
InnoDB
では,ンデックス行ロックとギャップロックを組み合わせた"ネクストキロック"と呼ばれるアルゴリズムが使用されます。InnoDB
は,テーブルインデックスを検索またはスキャンするときに,生成されたインデックスレコード上に共有ロックまたは排他ロックを設定するという方法で,行レベルロックを実行します。したがって,行レベルロックは,実際には,ンデックスレコ,ドロックです。さらに,あるeconンデックスレコ,そのeconンデックスレコ「ギャップ」も影響を受けます。つまり,ネクストキーロックは,インデックスレコードロックと,そのインデックスレコードの前のギャップに対するギャップロックとを組み合わせたものです。あるセッションが邮箱ンデックス内のレコ邮箱ドR
上に共有ロックまたは排他ロックを持っている場合は、別のセッションが以及ンデックスの順番でR
の直前にあるギャップに新しい邮箱ンデックスレコ邮箱ドを挿入できません。セクション14.2.6 " InnoDBのレコド,ギャップ,およびネクストキロック"を参照してください。innodb_locks_unsafe_for_binlog
の値はデフォルトで0(無効)になっていますが,これは,ギャップロックが有効であることを意味します。InnoDB
はネクストキロックを使用して,検索およびンデックススキャンを実行します。この変数を有効にするには,値を1に設定します。これにより,ギャップロックが無効になります。InnoDB
はereplicationンデックスレコereplicationドロックのみを使用して,検索およびereplicationンデックススキャンを実行します。innodb_locks_unsafe_for_binlog
を有効にしても,外部キ制約チェックや重複キチェックでのギャップロックの使用は無効になりません。innodb_locks_unsafe_for_binlog
を有効にした場合の影響は,トランザクション分離レベルを读过承诺
に設定した場合の影響に似ていますが,同じではありません。innodb_locks_unsafe_for_binlog
を有効にすることはグロバルな設定であるため,すべてのセッションが影響を受けます。その一方で,分離レベルは,すべてのセッションに対してグローバルに設定することも,セッションごとに個別に設定することもできます。innodb_locks_unsafe_for_binlog
はサーバー起動時にしか設定できないのに対して,分離レベルは起動時に設定することも,実行時に変更することもできます。
したがって,
读过承诺
ではinnodb_locks_unsafe_for_binlog
よりも細かく柔軟な制御が提供されます。ギャップロックに対する分離レベルの影響に関する追加の詳細については、セクション13.3.6 " set transaction構文"を参照してください。ギャップロックが無効になるとほかのセッションが新しい行をギャップに挿入できるため,
innodb_locks_unsafe_for_binlog
を有効にすると,ファントムの問題が発生する可能性があります。孩子
テブルのid
カラム上にインデックスがあり,識別子の値が100よりも大きいすべての行をテーブルから読み取り,選択された行の一部のカラムをあとで更新するという意図でロックすると仮定します。SELECT * FROM child WHERE id > 100 FOR UPDATE;
クエリでは,
id
が100より大きい最初のレコンデックスがスキャンされます。その範囲内のインデックスレコード上に設定されたロックによって,ギャップへの挿入がロックアウトされていない場合は,別のセッションがそのテーブルに新しい行を挿入できます。したがって,同じトランザクション内で同じ选择
を再度実行すると,クエリ。これは,デ,タベ,スに新しい項目が追加された場合は,InnoDB
で直列化可能性が保証されないことも意味します。したがって,innodb_locks_unsafe_for_binlog
が有効な場合にInnoDB
によって保証される最大の分離レベルは,读过承诺
になります.(競合直列化可能性は引き続き保証されます.)ファントムの追加情報に,セクション14.2.7 "ネクストキロックによるファントム問題の回避"を参照してください。innodb_locks_unsafe_for_binlog
を有効にした場合には,次のような影響も発生します。更新
または删除
ステトメントでは,InnoDB
は更新または削除の対象となる行に対してのみ,ロックを保持します。一致しなかった行のレコドロックは,MySQLによる在哪里
条件の評価後に解除されます。これにより,デッドロックの可能性が大幅に低くなりますが、まだ発生する可能性はあります。更新
ステトメントである行がすでにロックされていた場合,InnoDB
は「半一貫性」読み取りを実行し,最後にコミットされたバジョンをMySQLに返すため,MySQLはその行が更新
の在哪里
条件に一致するかどうかを判断できます。その行が一致した場合(その行を更新する必要がある場合),MySQLはその行を再度読み取り,InnoDB
は今度はその行をロックするか,その行のロックが解除されるまで待機します。
次のような例にいて,このテブルから検討します。
CREATE TABLE t (a INT NOT NULL, b INT)插入t值(1、2),(2、3),(2),(4,3),(2);提交;
この場合は,テーブルにインデックスが設定されていないため,検索およびインデックススキャンでは,非表示のクラスタ化されたインデックスを使用してレコードのロックが行われます(セクション14.2.13.2 "クラスタereplicationンデックスとセカンダリereplicationンデックス"を参照してください)。
あるクラ邮箱アントが次のステ邮箱トメントを使用して,
更新
を実行すると仮定します。SET autocommit = 0;SET b = 5 WHERE b = 3;
また2番目のクライアントが1番目のクライアントの実行後に次のステートメントを実行することで,
更新
を実行すると仮定します。SET autocommit = 0;SET b = 4 WHERE b = 2;
InnoDB
は各更新
を実行する際に,まず各行の排他ロックを取得し,次にその行を変更するかどうかを判断します。InnoDB
がその行を変更せず,かinnodb_locks_unsafe_for_binlog
が有効な場合は,そのロックが解除されます。それ以外の場合,トランザクションが終了するまでInnoDB
はそのロックを保持します。これにより,トランザクション処理が次のような影響を受けます。innodb_locks_unsafe_for_binlog
が無効な場合は次のように,最初の更新
はxロックを取得し,そのいずれも解除しません。独占锁(1、2);保留x锁x锁(2,3);更新(2,3)到(2,5);保留x锁x锁(3,2);保留x锁x锁(4,3);更新(4,3)到(4,5);保持x锁x锁(5,2);保留独占锁
次のように,2番目の
更新
は(1番目の更新がすべての行のロックを保持しているため),ロックを取得しようとしてもすぐにブロックされ,1番目の更新
がコミットまたはロルバックを実行するまで続行されません。独占锁(1、2);块,并等待第一个UPDATE提交或回滚
innodb_locks_unsafe_for_binlog
が有効な場合は次のように,最初の更新
はxロックを取得したあとに,変更されない行のロックを解除します。独占锁(1、2);解锁(1、2)独占锁(2、3);更新(2,3)到(2,5);保留x锁x锁(3,2);解锁(2)独占锁(4,3);更新(4,3)到(4,5);保持x锁x锁(5,2);解锁(5,2)
2番目の
更新
では次のように,InnoDB
は「半一貫性」読み取りを行い,最後にコミットされたバジョンをMySQLに返すため,MySQLはその行が更新
の在哪里
条件に一致するかどうかを判断できます。独占锁(1、2);更新(1,2)到(1,4);保留x锁x锁(2,3);解锁(2、3)独占锁(3 2);更新(3,2)到(3,4);保留x锁x锁(4,3);解锁(4,3)独占锁(2);更新(5,2)到(5,4);保留独占锁
-
コマンド行形式 ——innodb-log-buffer-size = #
システム変数 innodb_log_buffer_size
スコプ グロバル 動的 いいえ 型 数値 デフォルト 8388608
最小値 262144
最大値 4294967295
ディスク上のログファ邮箱ルに書き込む際に
InnoDB
で使用されるバッファのサ(バ)です。デフォルトの値は8mバ邮箱トです。ログバッファを大きくすると,トランザクションがコミットする前にディスクにログを書き込まなくても,大規模なトランザクションを実行できます。したがって,多数の行を更新、挿入、または削除するトランザクションの場合、ログバッファーを大きくすると、ディスク I/O を節約できます。一般的な I/O チューニングのアドバイスについては、セクション8.5.7 " InnoDBディスクI/Oの最適化"を参照してください。 -
コマンド行形式 ——innodb-log-compressed-pages = #
導入 5.6.11 システム変数 innodb_log_compressed_pages
スコプ グロバル 動的 はい 型 ブル デフォルト 在
再圧縮されたペジの邮箱メ邮箱ジが
InnoDB
の重做ログに格納されるかどうかを指定します。この変数はMySQL 5.6.11で追加されました。
-
コマンド行形式 ——innodb-log-file-size = #
システム変数 innodb_log_file_size
スコプ グロバル 動的 いいえ 型 数値 デフォルト(≥5.6.8) 50331648
デフォルト(≤5.6.7) 5242880
最小値 1048576
最大値(≥5.6.3) 512GB / innodb_log_files_in_group . txt
最大値(≤5.6.2) 4GB / innodb_log_files_in_group . txt
ロググルプ内の各ログファ邮箱ルのサ电子书阅读器ズ(バ电子书阅读器ト単位)です。ログファ邮箱ルを結合したサ邮箱ズ(
innodb_log_file_size
*innodb_log_files_in_group
)は,512gバ电子书トよりもわずかに小さい最大値を上回ることができません。たとえば,255Gバイトのログファイルのペアを使用すれば、制限に近づくことはできますが、上回ることはできません。デフォルト値は 48M バイトです。適切な値の範囲は、1M バイトから 1/バッファプルのN
番目のサ邮箱ズまでです。ここで,N
はグルプ内のログファ。値を大きくするほど、バッファープール内で必要となるチェックポイントフラッシュアクティビティーの数が少なくなるため、ディスク I/O を節約できます。また、ログファイルを大きくすると、クラッシュリカバリの速度が遅くなります。ただし,米ySQL 5.5 以上ではリカバリのパフォーマンスが改善されているため、ログファイルのサイズに対する考慮事項も少なくなります。一般的な I/O チューニングのアドバイスについては、セクション8.5.7 " InnoDBディスクI/Oの最適化"を参照してください。重要Bug #69477が原因で,外部に格納された大きな
团
フィールドに対する重做ログの書き込みによって,最新のチェックポイントが上書きされる可能性があります。このバグに対処するためにMySQL 5.6.20で導入されたパッチを適用すれば,团
で書き込まれるRedoログのサereplicationズがRedoログファereplicationルサereplicationズの10%に制限されます。この制限の結果として,innodb_log_file_size
は,テ团
デタサ10倍よりも大きい値に,その他の変数の長さフィ(VARCHAR
、VARBINARY
,および文本
型のフィルド)の長さを加えた値に設定されるはずです。MySQL 5.6.22では,重做ログ
团
の書き込み制限は合計重做ログサereplicationズ(innodb_log_file_size
*innodb_log_files_in_group
)の10%に緩められました。(错误# 19498877) -
コマンド行形式 ——innodb-log-files-in-group = #
システム変数 innodb_log_files_in_group
スコプ グロバル 動的 いいえ 型 数値 デフォルト 2
最小値 2
最大値 One hundred.
ロググルプ内のログファ邮箱ルの数です。
InnoDB
はファ邮箱ルに輪状に書き込みをします。デフォルト(推奨) 値は 2 です。これらのファイルの場所は、innodb_log_group_home_dir
で指定されます。ログファ邮箱ルを結合したサイズ (innodb_log_file_size
*innodb_log_files_in_group
)は,最大で512gバ电子书トにすることができます。 -
コマンド行形式 ——innodb-log-group-home-dir =路径
システム変数 innodb_log_group_home_dir
スコプ グロバル 動的 いいえ 型 ディレクトリ名 InnoDB
の重做ログファ邮箱ルへのディレクトリパスです。この数は,innodb_log_files_in_group
で指定されます。どのInnoDB
ログ変数も指定しない場合は,デフォルトで,MySQLデタディレクトリ内にib_logfile0
およびib_logfile1
という名前の2。これらのサズは,innodb_log_file_size
システム変数のサ邮箱ズで指定されます。 -
コマンド行形式 ——innodb-lru-scan-depth = #
導入 5.6.3 システム変数 innodb_lru_scan_depth
スコプ グロバル 動的 はい 型 数値 デフォルト 1024
最小値 One hundred.
最大値(64ビットプラットフォム) 2 * * 64 - 1
最大値(32ビットプラットフォム) 2 * * 32-1
InnoDB
のバッファプルでのフラッシュ操作のアルゴリズムおよびヒュリスティクスに影響を与えるパラメタです。主に,i / oンテンシブなワクロ。バッファプルンスタンスごとに,page_cleaner
スレッドがフラッシュするダティペジを検索する際に,どのくらいの深さまでバッファープールLRUリストをスキャンするのかが指定されます。これは,1秒ごとに1回実行されるバックグラウンド操作です。一般的なワクロドで予備のI/O容量を持っている場合は,この値を大きくします。書き込みが集中するワークロードでI / O容量がいっぱいになった場合は,この値を小さくします(特に大きなバッファープールを持っている場合)。一般的なI/Oチュセクション8.5.7 " InnoDBディスクI/Oの最適化"を参照してください。 -
コマンド行形式 ——innodb-max-dirty-pages-pct = #
システム変数 innodb_max_dirty_pages_pct
スコプ グロバル 動的 はい 型 数値 デフォルト 75
最小値 0
最大値 99
InnoDB
は,ダティペジの割合がこの値を超えないように,バッファプルからデタをフラッシュしようと試みます。0から99までの範囲内の整数を指定します。デフォルト値は 75 です。innodb_max_dirty_pages_pct
設定は,フラッシュアクティビティのタゲットを確立します。フラッシュの頻度には影響を与えません。フラッシュの頻度の管理にいては,セクション14.13.1.2 " InnoDBバッファプルのフラッシュの頻度の構成"を参照してください。この変数に関する追加情報にいては,セクション14.13.1.6 " InnoDBバッファプルのフラッシュのチュニング"を参照してください。一般的なI/Oチュセクション8.5.7 " InnoDBディスクI/Oの最適化"を参照してください。
innodb_max_dirty_pages_pct_lwm
コマンド行形式 ——innodb-max-dirty-pages-pct-lwm = #
導入 5.6.6 システム変数 innodb_max_dirty_pages_pct_lwm
スコプ グロバル 動的 はい 型 数値 デフォルト 0
最小値 0
最大値 99
ダティペジの比率を制御するために事前フラッシュが有効になっている場合に,ダティペジの割合を表す低位境界値です。デフォルトの0では、事前フラッシュの動作が完全に無効になります。この変数に関する追加情報については、セクション14.13.1.6 " InnoDBバッファプルのフラッシュのチュニング"を参照してください。
-
コマンド行形式 ——innodb-max-purge-lag = #
システム変数 innodb_max_purge_lag
スコプ グロバル 動的 はい 型 数値 デフォルト 0
最小値 0
最大値 4294967295
この変数は,パジ操作が遅れたときに,
插入
、更新
,および删除
操作を遅延させる方法を制御します(セクション14.2.12 " InnoDBマルチバジョン"を参照してください)。デフォルト値は0(遅延なし) です。InnoDB
トランザクションシステムでは,更新
または删除
操作で削除のマクが付けられたドを含むトランザクションのリストが保持されます。purge_lag
の値は,このリストの長さを表しています。purge_lag
がinnodb_max_purge_lag
を超えると,各插入
、更新
,および删除
操作が遅延します。purge_lag
が非常に大きくなるような極端な状況で,過剰な遅延を回避するには,innodb_max_purge_lag_delay
構成オプションを設定すれば,遅延の量に上限を設定できます。遅延は,パジバッチの開始時に計算されます。トランザクションが小規模(100バ)であり,許可されている未パ
InnoDB
テーブル行が100バイトであると仮定すると,問題のあるワークロードに適した一般的な設定が100年万になる可能性があります。遅延の値は,InnoDB Monitor出力の
交易
セクションに履歴リストの長さとして表示されます。たとえば,出力に次の行が含まれている場合は、遅延の値が 20 です。------------ TRANSACTIONS ------------ Trx id counter 0 290328385清除Trx的n:o < 0 290315608 undo n:o < 0 17历史列表长度20
一般的なI/Oチュセクション8.5.7 " InnoDBディスクI/Oの最適化"を参照してください。
-
コマンド行形式 ——innodb-max-purge-lag-delay = #
導入 5.6.5 システム変数 innodb_max_purge_lag_delay
スコプ グロバル 動的 はい 型 数値 デフォルト 0
最小値 0
innodb_max_purge_lag
構成オプションで課された遅延の最大遅延をミリ秒単位で指定します。ゼロ以外の値は,innodb_max_purge_lag
の値に基づいて,公式から計算された遅延期間への上限を表します。デフォルトのゼロは、遅延間隔に上限が課されていないことを意味します。一般的なI/Oチュセクション8.5.7 " InnoDBディスクI/Oの最適化"を参照してください。
効果はありません。この変数はMySQL 5.6.11の時点で非推奨となり,将来のMySQLリリースで削除される予定です。
-
コマンド行形式 ——innodb-monitor-disable =(计数器模块| | |模式所有)
導入 5.6.2 システム変数 innodb_monitor_disable
スコプ グロバル 動的 はい 型 文字列 INFORMATION_SCHEMA。INNODB_METRICS
テブルで1以上のカウンタをオフにします。使用法にいては,セクション21.29.19 " information_schema innodb_metricsテブル"を参照してください。 -
コマンド行形式 ——innodb-monitor-enable =(计数器模块| | |模式所有)
導入 5.6.2 システム変数 innodb_monitor_enable
スコプ グロバル 動的 はい 型 文字列 INFORMATION_SCHEMA。INNODB_METRICS
テブルで1以上のカウンタをオンにします。使用法にいては,セクション21.29.19 " information_schema innodb_metricsテブル"を参照してください。 -
コマンド行形式 ——innodb-monitor-reset =(计数器模块| | |模式所有)
導入 5.6.2 システム変数 innodb_monitor_reset
スコプ グロバル 動的 はい 型 文字列 INFORMATION_SCHEMA。INNODB_METRICS
テブルで1以上のカウンタに対応するカウント値をゼロにリセットします。使用法にいては,セクション21.29.19 " information_schema innodb_metricsテブル"を参照してください。 -
コマンド行形式 ——innodb-monitor-reset-all =(计数器模块| | |模式所有)
導入 5.6.2 システム変数 innodb_monitor_reset_all
スコプ グロバル 動的 はい 型 文字列 INFORMATION_SCHEMA。INNODB_METRICS
テブルで1以上のカウンタに対応するすべての値(最小,最大など)をリセットします。使用法にいては,セクション21.29.19 " information_schema innodb_metricsテブル"を参照してください。 -
コマンド行形式 ——innodb-old-blocks-pct = #
システム変数 innodb_old_blocks_pct
スコプ グロバル 動的 はい 型 数値 デフォルト 37
最小値 5
最大値 95
古いブロックサブリストで使用される
InnoDB
のバッファプルの概算割合を指定します。値の範囲は 5 から 95 です。デフォルト値は 37 (つまり、プールの 3/8 ) です。多くの場合、innodb_old_blocks_time
と組み合わせて使用されます。詳細は,セクション14.13.1.3 "バッファプルをスキャンに耐えられるようにする"を参照してください。LRUアルゴリズムやエビクションポリシなどのバッファプル管理にセクション8.9.1 " InnoDBバッファプル"を参照してください。 -
コマンド行形式 ——innodb-old-blocks-time = #
システム変数 innodb_old_blocks_time
スコプ グロバル 動的 はい 型 数値 デフォルト(≥5.6.6) 1000
デフォルト(≤5.6.5) 0
最小値 0
最大値 2 * * 32-1
ゼロ以外の値にすると,バッファプルがテブルの完全スキャン時などの短期間でのみ参照されるデタでいっぱいになることから保護されます。この値を大きくすると,テーブルの完全スキャンがバッファープール内にキャッシュされたデータとやりとりすることからさらに保護されます。
最初のアクセス後に,古いサブリストに挿入されるブロックが新しいサブリストに移動するまでに,そこに滞在する必要のある期間をミリ秒(ms)単位で指定します。値を0にすると,古いサブリストに挿入されたブロックは、挿入後にどのくらいの期間でアクセスが発生するのかには関係なく、最初のアクセスの直後に新しいサブリストに移動します。この値が 0 より大きい場合、ブロックは最初のアクセス後、少なくともそのミリ秒でアクセスが発生するまで、古いサブリストに残ります。たとえば、1000 の値では、ブロックは最初のアクセス後、それらが新しいサブリストに移動される資格を得るまで、1 秒間古いサブリストにとどまります。
デフォルト値は,MySQL 5.6.6の時点では1000,それよりも前では0です。
多くの場合,この変数は
innodb_old_blocks_pct
と組み合わせて使用されます。詳細は,セクション14.13.1.3 "バッファプルをスキャンに耐えられるようにする"を参照してください。LRUアルゴリズムやエビクションポリシなどのバッファプル管理にセクション8.9.1 " InnoDBバッファプル"を参照してください。 innodb_online_alter_log_max_size
コマンド行形式 ——innodb-online-alter-log-max-size = #
導入 5.6.6 システム変数 innodb_online_alter_log_max_size
スコプ グロバル 動的 はい 型 数値 デフォルト 134217728
最小値 65536
最大値 2 * * 64 - 1
InnoDB
テブルに対するオンラ帐号帐号ンDDL操作時に使用される一時ログファ邮箱ルのサ邮箱ズに上限を指定します。作成される1。このログファopenstackルには,ddl操作時にテopenstackブルで挿入,更新,または削除されたデopenstackタが格納されます。一時ログファルは,innodb_sort_buffer_size
の値で必要になったときに,最大でinnodb_online_alter_log_max_size
で指定された最大値まで拡張されます。一時ログファ邮箱ルがサ邮箱ズの上限を超えた場合は,ALTER TABLE
操作に失敗し,コミットされていない並列DML操作がすべてロルバックされます。したがって,このオプションの値を大きくすると、オンライン DDL 操作時に実行できる DML 数は多くなりますが、ログからデータを適用するためにテーブルがロックされると、DDL 操作の終了時の期間も長くなります。-
コマンド行形式 ——innodb-open-files = #
システム変数 innodb_open_files
スコプ グロバル 動的 いいえ 型 数値 デフォルト(≥5.6.6) 1 (autosized)
デフォルト(≤5.6.5) 300
最小値 10
最大値 4294967295
この変数は,複数の
InnoDB
テブルスペスを使用する場合にのみ関連します。MySQLで一度に開いたままにできる.ibd
ファ邮箱ルの最大数が指定されます。最小値は10です。MySQL5.6.6の時点では、innodb_file_per_table
が無効になっている場合のデフォルト値は300です。それ以外の場合は,300よりも大きい値およびtable_open_cache
です. 5.6.6よりも前のデフォルト値は300です。.ibd
ファ邮箱ルで使用されるファ邮箱ルディスクリプタは,InnoDB
テブルでのみ使用されます。それらは,——open-files-limit
サーバーオプションによって指定されたものからは独立していて,テーブルキャッシュの操作に影響を与えません。一般的なI/Oチュセクション8.5.7 " InnoDBディスクI/Oの最適化"を参照してください。 -
コマンド行形式 ——innodb-optimize-fulltext-only = #
導入 5.6.4 システム変数 innodb_optimize_fulltext_only
スコプ グロバル 動的 はい 型 ブル デフォルト 从
InnoDB
テブルでの优化表
ステトメントの動作方法を変更します。全文
ンデックスを含むInnoDB
テブルのメンテナンス操作時に,一時的に有効にするために使用されます。デフォルトでは,
优化表
はテブルのクラスタ化された邮箱ンデックス内のデタを再構成します。このオプションを有効にすると,优化表
はこのようなテブルデタの再構成をスキップし,その代わりに全文
ンデックス用に新たに追加,削除,および更新されたト,クンデ,タを処理します。InnoDB
テブルの全文
帐号ンデックスに帐号いての詳細は,セクション14.2.13.3 " fulltext 10.1ンデックス"を参照してください。 -
コマンド行形式 ——innodb-page-size = # k
導入 5.6.4 システム変数 innodb_page_size
スコプ グロバル 動的 いいえ 型 列挙 デフォルト 16384
有効な値 4 k
8 k
16 k
4096
8192
16384
MySQLンスタンス内のすべての
InnoDB
テブルスペスのペジサを指定します。この値は,ンスタンスが作成されたあとに,定数が残っている場合に設定されます。ペジサズは,値16 k
(デフォルト),8 k
,または4 k
を使用して指定できます。また,バイト単位 (4096、8192、16384) でページサイズを指定することもできます。最大のペジサズでは,デフォルトが広範囲のワクロド(特に,テブルスキャンを伴うクエリや一括更新を伴うDML操作)に適しています。ペジサズが小さいほど,多くの小規模な書き込みを伴うOLTPワクロドの効率性が高くなる可能性があります。その一方で,単一のペ,ジに数多くの行が含まれる場合は,競合の問題が発生する可能性もあります。ペジを小さくすると,一般に小さなブロックサズが使用される固态硬盘ストレジデバ。
InnoDB
のページサイズをストレージデバイスのブロックサイズに近づけると,ディスクに再度書き込まれる未変更データの量が最小限になります。一般的なI/Oチュセクション8.5.7 " InnoDBディスクI/Oの最適化"を参照してください。 -
コマンド行形式 ——innodb-print-all-deadlocks = #
導入 5.6.2 システム変数 innodb_print_all_deadlocks
スコプ グロバル 動的 はい 型 ブル デフォルト 从
このオプションを有効にすると,
mysqld
エラログに,InnoDB
のユザトランザクション内のすべてのデッドロックに関する情報が記録されます。それ以外の場合は,显示引擎innodb状态
コマンドを使用すると,最後のデッドロックに関する情報のみが表示されます。不定期に発生するInnoDB
のデッドロックは,InnoDB
によってすぐに状況が検出され,自動的にトランザクションのいずれかがロールバックされるため,必ずしも問題になるとは限りません。アプリケーションにロールバックを検出し,その操作を再試行するための適切なエラー処理ロジックが存在しない場合は,デッドロックが発生する原因についてトラブルシューティングを行う際に,このオプションを使用するとよいでしょう。多数のデッドロックが発生する場合は,各トランザクションが同じ順序でテーブルにアクセスするように(これにより,デッドロックの状況が回避されます),複数のテーブルに対してDMLまたは选择……更新
ステトメントを発行するトランザクションを再構築する必要があることを示している可能性があります。 -
コマンド行形式 ——innodb-purge-batch-size = #
システム変数 innodb_purge_batch_size
スコプ グロバル 動的 はい 型 数値 デフォルト(≥5.6.3) 300
デフォルト(≤5.6.2) 20.
最小値 1
最大値 5000
重做ログレコドの単位で表現される変更の粒度です。これにより,パジ操作がトリガされ,変更されたバッファプルブロックがディスクにフラッシュされます。このオプションは,
innodb_purge_threads =
設定と組み合わせてパフォーマンスを調整するために使用されるため,一般的なユーザーは変更する必要がありません。n
-
コマンド行形式 ——innodb-purge-threads = #
システム変数 innodb_purge_threads
スコプ グロバル 動的 いいえ 型 数値 デフォルト(≥5.6.5) 1
デフォルト(≤5.6.4) 0
最小値(≥5.6.5) 1
最小値(≤5.6.4) 0
最大値(≥5.6.2) 32
最大値(≤5.6.1) 1
InnoDBのパジ操作専用のバックグラウンドスレッドの数です。MySQL5.6.5での新しいデフォルトの最小値である 1 は、パージ操作がマスタスレッドの一部としてではなく,常にバックグラウンドスレッドで実行されることを表します。ゼロ以外の値にすると,1つ以上のバックグラウンドスレッドでパージ操作が実行されるため、InnoDB 内の内部競合を削減でき、拡張性が改善されます。この値を 1 よりも大きくすると、数多くの個別のパージスレッドが作成されるため、複数のテーブル上でDML操作が実行されるシステムの効率性を改善できます。最大値は32です。
-
コマンド行形式 ——innodb-random-read-ahead = #
導入 5.6.3 システム変数 innodb_random_read_ahead
スコプ グロバル 動的 はい 型 ブル デフォルト 从
InnoDB
のI/Oを最適化するために,ランダムな先読み技術を有効にします。ランダム先読み機能は,InnoDB插件
(バジョン1.0.4)から削除されたため,InnoDB插件
がInnoDB
の「組み込みの」バジョンになった時点ではMySQL 5.5.0に含まれていませんでした。ランダム先読みは,innodb_random_read_ahead
構成オプション(デフォルトでは無効になっています)とともに,MySQL 5.1.59および5.5.16以降でふたたび導入されました。さまざまなタプの先読みリクエストに関するパフォセクション14.13.1.1 " InnoDBバッファプルのプリフェッチ(先読み)の構成"を参照してください。一般的なI/Oチュセクション8.5.7 " InnoDBディスクI/Oの最適化"を参照してください。
-
コマンド行形式 ——innodb-read-ahead-threshold = #
システム変数 innodb_read_ahead_threshold
スコプ グロバル 動的 はい 型 数値 デフォルト 56
最小値 0
最大値 64
バッファプルにペジをプリフェッチする際に
InnoDB
で使用される線形の先読みの感度を制御します。InnoDB
が少なくともinnodb_read_ahead_threshold
ペジをエクステント(64ペジ)から連続して読み取る場合は,次のエクステント全体の非同期読み取りが開始されます。許可される値の範囲は0から64までです。MySQL5.6.1の時点では、値を 0 にすると先読みが無効になります。5.6.1 よりも前では、値を 0 にすると、64 ページのエクステントの境界ページを読み取るときに、先読みがトリガーされました。デフォルトの 56 では、InnoDB
は次のエクステント全体の非同期読み取りを開始するために,少なくとも56ページをエクステントから連続して読み取る必要があります。この先読みメカニズムによって読み取られるページ数,およびその中でアクセスされずにバッファープールから削除される数を把握しておくと,
innodb_read_ahead_threshold
パラメタを微調整する際に役立ます。MySQL 5.5の時点では,显示引擎innodb状态
の出力に,Innodb_buffer_pool_read_ahead
およびInnodb_buffer_pool_read_ahead_evicted
グロバルステタス変数からのカウンタ情報が表示されます。これらの変数は,先読みリクエストによってバッファプルに格納されるペジの数,およびこのようなペジの中で,個別にアクセスされずにバッファルからエビクションされる数を示します。これらのカウンタには、最後にサーバーが再起動された以降のグローバルな値が表示されます。显示引擎innodb状态
には,先読みページが読み取られる比率,およびこのようなページがアクセスされずに削除される比率も表示されます。1秒ごとの平均値は,最後に显示引擎innodb状态
が呼び出された以降に収集された統計に基づいて計算され,出力の缓冲池和内存
セクションに表示されます。詳細は,セクション14.13.1.1 " InnoDBバッファプルのプリフェッチ(先読み)の構成"を参照してください。一般的なI/Oチュセクション8.5.7 " InnoDBディスクI/Oの最適化"を参照してください。
-
コマンド行形式 ——innodb-read-io-threads = #
システム変数 innodb_read_io_threads
スコプ グロバル 動的 いいえ 型 数値 デフォルト 4
最小値 1
最大値 64
InnoDB
での読み取り操作で使用されるI/Oスレッドの数です。デフォルト値は4です。書き込みスレッドで対応するものは,innodb_write_io_threads
です。詳細は,セクション14.13.6 " InnoDBバックグラウンドI/Oスレッドの数の構成"を参照してください。一般的なI/Oチュセクション8.5.7 " InnoDBディスクI/Oの最適化"を参照してください。注記Linuxシステムでは,デフォルトの
innodb_read_io_threads
設定で複数(一般には12台よりも多く)のMySQLサバを実行すると,innodb_write_io_threads
およびLinuxのaio-max-nr
設定がシステムの制限を超過する可能性があります。理想的にはaio-max-nr
設定を大きくします。回避策として,MySQL構成オプションの一方または両方の設定を小さくするとよいでしょう。 -
コマンド行形式 ——innodb-read-only = #
導入 5.6.7 システム変数 innodb_read_only
スコプ グロバル 動的 いいえ 型 ブル デフォルト 从
サバを読み取り専用モドで起動します。読み取り専用メディア上のデータベースアプリケーションまたはデータセットを配布するために使用されます。複数のインスタンス間で同じデータディレクトリを共有する際に,データウェアハウスで使用することもできます。使用手順にいては,セクション14.3.1 "読み取り専用操作用のInnoDBの構成"を参照してください。
-
コマンド行形式 ——innodb-replication-delay = #
システム変数 innodb_replication_delay
スコプ グロバル 動的 はい 型 数値 デフォルト 0
最小値 0
最大値 4294967295
innodb_thread_concurrency
に達した場合のスレブサバ上のレプリケションスレッドの遅延(ミリ秒単位)です。 -
コマンド行形式 ——innodb-rollback-on-timeout
システム変数 innodb_rollback_on_timeout
スコプ グロバル 動的 いいえ 型 ブル デフォルト 从
MySQL 5.6では;
InnoDB
はデフォルトで、トランザクションタロルバックします。——innodb_rollback_on_timeout
を指定すると,トランザクションタInnoDB
はトランザクション全体を中止してロルバックします(MySQL 4.1と同じ動作です)。 -
コマンド行形式 ——innodb-rollback-segments = #
導入 5.6.2 システム変数 innodb_rollback_segments
スコプ グロバル 動的 はい 型 数値 デフォルト 128
最小値 1
最大値 128
トランザクション内でInnoDBが使用するシステムテブルスペスにあるロルバックセグメントの数を定義します。この設定は引き続き有効ですが,
innodb_undo_logs
で置き換えられます。 -
コマンド行形式 ——innodb-sort-buffer-size = #
導入 5.6.4 システム変数 innodb_sort_buffer_size
スコプ グロバル 動的 いいえ 型 数値 デフォルト 1048576
最小値(≥5.6.5) 65536
最小値(5.6.4) 524288
最大値 67108864
InnoDB
econfンデックスの作成時に,デ。指定されたサイズでは,内部ソート用にメモリーに入力され,ディスクに書き込まれたデータの量が定義されます。これは,「実行」と呼ばれることもあります。マジフェズ時に,指定されたサ「読み取られ」,マジされます。設定を大きくするほど,「実行」数およびマジ数が少なくなります。このことは,チュニングの観点から理解する際に重要です。このソート領域は,後続のインデックスのメンテナンス操作時ではなく,インデックスの作成時のマージソートでのみ使用されます。e .ンデックスの作成が完了すると,バッファ.の割り当てが解除されます。
このオプションの値では,オンラ帐号帐号ンDDLの操作時に並列DMLを記録するために,一時ログファereplicationルが拡張される量も制御されます。
この設定が構成可能になる前は,サイズが1048576バイト(1米バイト)にハードコーディングされていました。その値は,現在もデフォルトのままです。
ンデックスを作成する
ALTER TABLE
または创建表
ステートメントの実行時に,それぞれが,このオプションで定義されたサイズを持つ3つのバッファーが割り当てられます。さらに,ポインタ上でソートを実行できるように,ソートバッファー内の行に補助ポインタが割り当てられます(これは,ソート操作時の行の移動とは異なります)。一般的なソト操作では,次のような公式を使用して,メモリの消費を見積もることができます。
(6 /*FTS_NUM_AUX_INDEX*/ * (3*@@GLOBAL.innodb_sort_buffer_size) + 2 * (@@GLOBAL.innodb_sort_buffer_size/dict_index_get_min_size(index)*/) * 8 /*64位sizeof *buf->tuples*/")
「
@@GLOBAL.innodb_sort_buffer_size / dict_index_get_min_size(指数)
」は,保持される最大のタプル数を示します。「2 * (@@GLOBAL.innodb_sort_buffer_size/*dict_index_get_min_size(index)*/) * 8 /*64位的*buf->元组*/
は、割り当てられた補助ポ以及ンタ数を示します」。注記32ビットの場合は,8の代わりに4で乗算します。
全文邮箱ンデックスでの並列ソ邮箱トでは,
innodb_ft_sort_pll_degree
の設定で乗算します。(6 /*FTS_NUM_AUX_INDEX*/ @@GLOBAL.innodb_ft_sort_pll_degree)
-
コマンド行形式 ——innodb-spin-wait-delay = #
システム変数 innodb_spin_wait_delay
スコプ グロバル 動的 はい 型 数値 デフォルト 6
最小値 0
最大値 4294967295
スピンロックでのポリング間の最大遅延です。このメカニズムの低レベルの実装は,ハードウェアとオペレーティングシステムの組み合わせによって異なるため,遅延は一定の時間間隔に対応しません。デフォルト値は6です。詳細は,セクション14.13.10 "スピンロックのポリングの構成"を参照してください。
-
コマンド行形式 ——innodb-stats-auto-recalc = #
導入 5.6.6 システム変数 innodb_stats_auto_recalc
スコプ グロバル 動的 はい 型 ブル デフォルト 在
テブル内のデタが大幅に変更されたあとは,
InnoDB
によって自動的に永続的統計が再計算されます。現在のしきい値は,テブル内の行の10%です。この設定は,innodb_stats_persistent
オプションが有効になっている場合や,创建表
またはALTER TABLE
ステトメントでSTATS_PERSISTENT = 1
句が有効になっている場合に,作成されたテブルに適用されます。統計を生成するためにサンプルとして取得されるデタの量は,innodb_stats_persistent_sample_pages
構成オプションで制御されます。innodb_stats_auto_recalc
に関する追加情報にいては,セクション14.13.16.1 "永続的オプティマザ統計のパラメタの構成"を参照してください。 -
コマンド行形式 ——innodb-stats-method =名字
導入 5.6.2 システム変数 innodb_stats_method
スコプ グロバル 動的 はい 型 列挙 デフォルト nulls_equal
有効な値 nulls_equal
nulls_unequal
nulls_ignored
InnoDB
テブルの統計を収集するときに,サバが零
値を処理する方法です。この変数は,nulls_equal
、nulls_unequal
,およびnulls_ignored
の3の値を指定できます。nulls_equal
の場合,すべての零
ンデックス値を同等として扱い,零
値の数とサ邮箱ズが同等の単一値グル邮箱プを生成します。nulls_unequal
の場合,零
値同士を同等として扱わず,それぞれの零
はサ管理员ズが1の別個のグル管理员プを生成します。nulls_ignored
の場合,零
値は無視されます。テブル統計を生成するために使用する方法は,セクション8.3.7 " InnoDBおよびMyISAM ereplicationンデックス統計コレクション"に記載されているように,オプティマイザがクエリー実行のためのインデックスを選択する方法に影響を与えます。
-
コマンド行形式 ——innodb-stats-on-metadata
システム変数 innodb_stats_on_metadata
スコプ グロバル 動的 はい 型 ブル デフォルト(≥5.6.6) 从
デフォルト(≤5.6.5) 在
この変数を有効にすると,
显示表状态
や显示指数
などのメタデタステトメントが実行されるときや,INFORMATION_SCHEMA
テブル表
または统计数据
にアクセスするときに,InnoDB
によって統計が更新されます。(これらの更新は、分析表
で実行されるものに似ています.)無効にすると,これらの操作時にInnoDB
によって統計が更新されません。この設定を無効のままにすると,多数のテーブルまたはインデックスを持つスキーマのアクセス速度を改善できます。InnoDB
テブルが関与するクエリの実行計画の安定性も改善できます。設定を変更するには,
SET GLOBAL innodb_stats_on_metadata=
ステトメントを発行します。ここで,模式
は模式
在
と从
のいずれか(または.1
と0
のいずれか)です。この設定を変更するには,超级
権限が必要です。変更すると,すべての接続の操作がすぐに影響を受けます。MySQL 5.6.6の時点では,この変数はデフォルトで無効になっています。それよりも前では,有効になっています。
-
コマンド行形式 ——innodb-stats-persistent =设置
導入 5.6.6 システム変数 innodb_stats_persistent
スコプ グロバル 動的 はい 型 ブル デフォルト 在
有効な値 从
在
0
1
InnoDB
ンデックスの統計がディスクに保持されるかどうかを指定します。それ以外の場合は,頻繁に統計が再計算される可能性があります。これにより,クエリの実行計画が変化する可能性があります。テブルが作成されると、この設定が各テーブルとともに格納されます。テーブルを作成する前にグローバルレベルでinnodb_stats_persistent
を設定することも,创建表
およびALTER TABLE
ステトメントでSTATS_PERSISTENT
句を使用して,システム全体の設定をオーバーライドし,個々のテーブルの永続的統計を構成することもできます。このオプションにいての詳細は,セクション14.13.16.1 "永続的オプティマザ統計のパラメタの構成"を参照してください。
innodb_stats_persistent_sample_pages
コマンド行形式 ——innodb-stats-persistent-sample-pages = #
導入 5.6.2 システム変数 innodb_stats_persistent_sample_pages
スコプ グロバル 動的 はい 型 数値 デフォルト 20.
ンデックス付きカラムのカカディナリティやその他の統計(
分析表
で計算された統計など)を見積もるときに,サンプルとして取得される电子书ンデックスペジの数です。値を大きくすると、クエリの実行計画を改善するンデックス統計の精度が改善されますが,InnoDB
テブルに対する分析表
の実行時にI/Oが増加することになります。追加情報にいては,セクション14.13.16.1 "永続的オプティマザ統計のパラメタの構成"を参照してください。注記innodb_stats_persistent_sample_pages
に大きな値を設定すると,分析表
の実行時間が長くなる可能性があります。アクセスされるデタベスペジの数を見積もる方法にセクション14.13.17”InnoDBテーブルに対する分析表の複雑さの推定”を参照してください。このオプションは,テブルで
innodb_stats_persistent
設定がオンになっている場合にのみ適用されます。このオプションがテブルでオフになっている場合は,代わりにinnodb_stats_transient_sample_pages
設定が適用されます。-
コマンド行形式 ——innodb-stats-sample-pages = #
非推奨 5.6.3 システム変数 innodb_stats_sample_pages
スコプ グロバル 動的 はい 型 数値 デフォルト 8
最小値 1
最大値 2 * * 64 - 1
非推奨です。代わりに
innodb_stats_transient_sample_pages
を使用してください。 innodb_stats_transient_sample_pages
コマンド行形式 ——innodb-stats-transient-sample-pages = #
導入 5.6.2 システム変数 innodb_stats_transient_sample_pages
スコプ グロバル 動的 はい 型 数値 デフォルト 8
ンデックス付きカラムのカカディナリティやその他の統計(
分析表
で計算された統計など)を見積もるときに,サンプルとして取得される电子书ンデックスペジの数です。デフォルト値は8です。値を大きくすると、インデックス統計の精度が改善されます。これにより、クエリの実行計画を改善できますが,InnoDB
テブルを開くときや統計を再計算するときにI/Oが増加するという犠牲が伴います.输出说明追加情報にいてはセクション14.13.16.2 "非永続的オプティマザ統計のパラメタの構成"を参照してください。注記innodb_stats_transient_sample_pages
に大きな値を設定すると,分析表
の実行時間が長くなる可能性があります。アクセスされるデタベスペジの数を見積もる方法にセクション14.13.17”InnoDBテーブルに対する分析表の複雑さの推定”を参照してください。このオプションは,テブルで
innodb_stats_persistent
設定がオフになっている場合にのみ適用されます。このオプションがテブルでオンになっている場合は,代わりにinnodb_stats_persistent_sample_pages
設定が適用されます。innodb_stats_sample_pages
オプションの場所を取得します。-
コマンド行形式 ——innodb-status-output
導入 5.6.16 システム変数 innodb_status_output
スコプ グロバル 動的 はい 型 ブル デフォルト 从
標準
InnoDB
监控の定期的な出力を有効または無効にする際に使用されます。また,InnoDB
锁监控器の定期的な出力を有効または無効にする際に,innodb_status_output_locks
と組み合わせて使用されます。追加情報にいては,セクション14.15 " InnoDBモニタ"を参照してください。 -
コマンド行形式 ——innodb-status-output-locks
導入 5.6.16 システム変数 innodb_status_output_locks
スコプ グロバル 動的 はい 型 ブル デフォルト 从
InnoDB
锁定监视器の定期的な出力を有効または無効にする際に使用されます。innodb_status_output
と組み合わせて使用する必要があります。追加情報にいては,セクション14.15 " InnoDBモニタ"を参照してください。 -
コマンド行形式 ——innodb-strict-mode = #
システム変数 innodb_strict_mode
スコプ グロバル,セッション 動的 はい 型 ブル デフォルト 从
innodb_strict_mode
を在
にすると,InnoDB
は特定の条件に対応した警告ではなく,エラを返します。デフォルト値は从
です。厳密モドは、SQL内の無視できる誤字や構文エラー,または操作モードとSQLステートメントのさまざまな組み合わせによる意図しないその他の結果から保護する際に役立ちます。
innodb_strict_mode
を在
にすると,InnoDB
は警告を発行して,指定されたステートメントを処理する(意図しない動作が伴う可能性があります)のではなく,特定のケースでエラー状況が発生します。これは,米ySQL で受け入れられる SQL 構文を制御し、警告なしでエラーを無視するのか、入力構文とデータ値を検証するのかを決定する MySQL のsql_mode
と類似しています。innodb_strict_mode
の設定によって,创建表
、ALTER TABLE
,および创建索引
ステトメントの構文エラ処理が影響を受けます。innodb_strict_mode
では,選択したペ,ジサ,ズに対してレコ,插入
または更新
が失敗しないように,レコズのチェックも有効になります。オラクルでは,
创建表
、ALTER TABLE
,および创建索引
ステトメントでROW_FORMAT
およびKEY_BLOCK_SIZE
句を使用する際に,innodb_strict_mode
を有効にすることが推奨されています。innodb_strict_mode
を从
にすると,InnoDB
は競合する句を無視し,テンデックスを作成し,メッセ。結果として生成されるテーブルでは,圧縮されたテーブルを作成しようとしても圧縮されないなど,意図したものとは異なる動作が発生する可能性があります。innodb_strict_mode
を在
にすると,このような問題が発生するとすぐにエラーが生成され,テーブルまたはインデックスは作成されないため,後続のトラブルシューティングセッションが回避されます。mysqld
の起動時にコマンド行で,またはmy.cnf
またはmy.ini
構成ファ邮箱ルで,innodb_strict_mode
の在
と从
を切り替えることができます。SET [GLOBAL|SESSION] innodb_strict_mode=
ステトメントを使用すれば,実行時に模式
innodb_strict_mode
を有効または無効にすることもできます。ここで,
は模式
在
と从
のいずれかです。全球
値を変更するには,超级
権限が必要です。これを変更すると、それ以降に接続するすべてのクラ以及アントの操作が影響を受けます。任意のクラ邮箱アントがinnodb_strict_mode
の会话
設定を変更でき、そのクラ以及アントのみが設定の影響を受けます。 -
コマンド行形式 ——innodb-support-xa
システム変数 innodb_support_xa
スコプ グロバル,セッション 動的 はい 型 ブル デフォルト 真正的
XAトランザクションの2相コミットで
InnoDB
のサポトを有効にします。これにより,トランザクションの準備時に追加のディスクフラッシュが発生します。この設定はデフォルトです。XA メカニズムは内部で使用されるため、バイナリログがオンになっていて、複数のスレッドからのデータの変更が許可されている任意のサーバーで重要となります。オフにすると、ライブデータベースがコミットするときとは異なる順序で、トランザクションがバイナリログに書き込まれる可能性があります。これにより、ディザスタリカバリ時やレプリケーションスレーブでバイナリログが再現されるときに、異なるデータが生成される可能性があります。1 つのスレッドしかデータを変更できない例外的な設定を使用している場合を除いて、レプリケーションマスターサーバーではオフにしないでください。1 .のスレッドからのデタ変更のみが許可されているサバでは,
InnoDB
テーブルのパフォーマンスを改善するために,このオプションをオフにすることが安全であり,推奨されています。たとえば,レプリケションSQL スレッドのみがデータを変更するレプリケーションスレーブでは、オフにすることができます。また,安全なバイナリロギングまたはレプリケーションで必要でなく,外部のXAトランザクションマネージャーを使用しない場合でも,このオプションをオフにすることができます。
-
コマンド行形式 ——innodb-sync-array-size = #
導入 5.6.3 システム変数 innodb_sync_array_size
スコプ グロバル 動的 いいえ 型 数値 デフォルト 1
最小値 1
最大値 1024
大量の待機中スレッドを含むワークロードの並列性を高くするために,スレッドの調整に使用される内部データ構造を分割します。この設定はMySQL MySQL目录ンスタンスの起動時に構成する必要があり,あとで変更することはできません。大量の(一般に 768 を超える) 待機中スレッドが頻繁に生成されるワークロードでは、このオプション値を大きくすることをお勧めします。
-
コマンド行形式 ——innodb-sync-spin-loops = #
システム変数 innodb_sync_spin_loops
スコプ グロバル 動的 はい 型 数値 デフォルト 30.
最小値 0
最大値 4294967295
スレッドが中断される前に,
InnoDB
相互排他ロックが開放されるまでスレッドが待機する回数です。デフォルト値は30です。 -
コマンド行形式 ——innodb-table-locks
システム変数 innodb_table_locks
スコプ グロバル,セッション 動的 はい 型 ブル デフォルト 真正的
自动提交= 0
の要求を受け入れます。MySQLはすべてのスレッドがテブルに対するすべてのロックを解放するまで、の場合,
InnoDBは
锁表锁表…写
から戻りません。innodb_table_locks
のデフォルト値は1です。これは,自动提交= 0
.の場合,锁表
によってInnoDBがテブルを内部的にロックすることを意味します。MySQL 5.6では;
锁表…写
を使用して明示的にロックされたテブルには,Innodb_table_locks = 0
が無効です。锁表…写
で暗黙的に(たとえば,トリガを使用して),または锁表…读
によって,読み取りまたは書き込み用にロックされたテブルには有効です。 -
コマンド行形式 ——innodb-thread-concurrency = #
システム変数 innodb_thread_concurrency
スコプ グロバル 動的 はい 型 数値 デフォルト 0
最小値 0
最大値 1000
InnoDB
は,この変数で指定された制限以下の数のオペレティングシステムスレッドを同時にInnoDB
内部に保持しようと試みます(InnoDB
では,ユザトランザクションを処理する際にオペレティングシステムのスレッドが使用されます)。スレッド数がこの制限に達すると,それ以降のスレッドは実行されるまで,「先入れ先出し」(fifo)キュ内で待機状態になります。ロックを待機しているスレッドは,並列実行中のスレッドの数にカウントされません。この変数の範囲は0から1000までです。値0(デフォルト)は,無制限の並列性 (並列性チェックなし) と解釈されます。スレッドの並列性チェックを無効にすると、
InnoDB
は必要な数だけのスレッドを作成できます。値を0にすると,InnoDB内部のクエリ
および显示引擎innodb状态
出力の行操作
セクションにあるキュキュカウンタ内のクエリ
も無効になります。MySQLインスタンスとその他のアプリケーションでCPUリソースを共有している場合や,ワークロードまたは並列ユーザー数が増加している場合は,この変数を設定することを検討してください。適切な設定は,ワークロード,コンピューティング環境,および実行中のMySQLのバージョンによって異なります。最適なパフォマンスを実現する設定を決定するには,広範囲の値をテストする必要があります。
innodb_thread_concurrency
は動的な変数であるため,これを使用すれば,ライブテストシステムでさまざまな設定を試みることができます。特定の設定でパフォマンスが低下した場合は,すぐにinnodb_thread_concurrency
を0に戻してください。次のガ。
ワクロドに対する並列ユザスレッドの数が64よりも少ない場合は,
innodb_thread_concurrency = 0
を設定します。ワクロドの負荷が常に高い場合や,ときどき急上昇する場合は,初めに
innodb_thread_concurrency = 128
を設定してから,最適なパフォーマンスが実現されるスレッド数が見つかるまで,値を96、80、64と小さくしてください。たとえば,システムに通常は 40 - 50 のユーザーが存在しますが、定期的にその数が 60、70、さらには 200 まで上昇すると仮定します。パフォーマンスは、並列ユーザーが 80 のときは安定していますが、この数を上回ると低下が見られ始めます。この場合、パフォーマンスへの影響を回避するには、innodb_thread_concurrency = 80
を設定します。InnoDB
でユーザースレッド用に特定の数を上回る个vCPU(たとえば,20個の个vCPU)が使用されないようにする場合は,innodb_thread_concurrency
をその数(またはパフォマンスの結果によっては,さらに小さい数)に設定します。MySQLをその他のアプリケションから分離することが目的である場合は,排他的にmysqld
プロセスをvCPUにバvcenterンドすることを検討してみてください。ただし,mysqld
プロセスの負荷が常に高いわけではない場合は,排他的なバインドによって最適なハードウェアの使用が実現されない可能性があります。この場合,mysqld
プロセスを个vCPUにバインドしても,その他のアプリケーションも个vCPUの一部または全部を使用できます。注記オペレティングシステムの観点から見ると,
mysqld
プロセスをバインドするよりも,リソース管理ソリューションを使用して(使用可能な場合),アプリケーション間でCPU時間を共有する方法を管理する方が適切な場合があります。たとえば,その他のクリティカルなプロセスが実行されていない場合は,个vCPU時間の90%を特定のアプリケーションに割り当て,その他のクリティカルなプロセスが実行されている場合は,その値を40%に戻します。innodb_thread_concurrency
の値が大きすぎると,システム内部およびリソース上の競合が増加するため,パフォーマンスが低下する可能性があります。場合によっては,最適な
innodb_thread_concurrency
がvCPUの数よりも小さくなる可能性もあります。定期的にシステムをモニタし,分析してください。ワクロド、ユーザー数、またはコンピューティング環境を変更するために、
innodb_thread_concurrency
設定の調整が必要なことがあります。
関連情報にいては,セクション14.13.5 " InnoDBのスレッド並列性の構成"を参照してください。
-
コマンド行形式 ——innodb-thread-sleep-delay = #
システム変数 innodb_thread_sleep_delay
スコプ グロバル 動的 はい 型 数値 デフォルト 10000
最小値 0
最大値(64ビットプラットフォム,≤5.6.16) 18446744073709551615
最大値(32ビットプラットフォム,≤5.6.16) 4294967295
最大値(≥5.6.17) 1000000
InnoDB
キュに参加するまでに,InnoDB
スレッドがスリプ状態になる期間(マクロ秒単位)です。デフォルト値は10000です。0の値はスリプを無効にします。MySQL5.6.3以降では、構成オプションinnodb_adaptive_max_sleep_delay
をinnodb_thread_sleep_delay
で許可される最大の値に設定でき,InnoDBによって自動的に,現在のスレッドスケジューリングアクティビティーに応じてinnodb_thread_sleep_delay
が上下に調整されます。この動的な調整は,システムにかかる負荷が軽い期間や,システムがほぼ容量いっぱいで動作している期間に,スレッドスケジューリングメカニズムがスムーズに機能するのに役立ちます。詳細は,セクション14.13.5 " InnoDBのスレッド並列性の構成"を参照してください。
-
コマンド行形式 ——innodb-undo-directory = dir_name
導入 5.6.3 システム変数 innodb_undo_directory
スコプ グロバル 動的 いいえ 型 ディレクトリ名 デフォルト .
InnoDB
がUndoログ用に個別のテブルスペスを作成するディレクトリの相対パスまたは絶対パスです。一般に,これらのログを別のストレス上に配置する際に使用されます。innodb_undo_logs
およびinnodb_undo_tablespaces
と組み合わせて使用すると,システムテブルスペス外のUndoログのディスクレereplicationアウトが決定されます。デフォルト値の.
は,InnoDB
がデフォルトでその他のログファ邮箱ルを作成するディレクトリと同じであることを表します。 -
コマンド行形式 ——innodb-undo-logs = #
導入 5.6.3 システム変数 innodb_undo_logs
スコプ グロバル 動的 はい 型 数値 デフォルト 128
最小値 0
最大値 128
トランザクション内で
InnoDB
が使用するシステムテブルスペスにあるロルバックセグメントの数を定義します。この設定は,Undoログに関連する相互排他競合が観察された場合のパフォーマンスのチューニングに適切です。innodb_rollback_segments
設定から置き換えられました。アクティブな撤销ログではなく,使用可能な撤销ログの合計数にいては,Innodb_available_undo_logs
ステタス変数を参照してください。トランザクション内で使用されるロールバックセグメントの数は大きくしたり,小さくしたりできますが,システム内に物理的に存在するロールバックセグメントの数は減少しません。したがって,あとで必要でなくなるロールバックセグメントが割り当てられることを回避するために,このパラメータは小さい値から始めて徐々に大きくするとよいでしょう。
innodb_undo_logs
が設定されていない場合は,デフォルトの最大値が128になります。ロルバックセグメントの管理にいては,セクション14.2.12 " InnoDBマルチバジョン"を参照してください。 -
コマンド行形式 ——innodb-undo-tablespaces = #
導入 5.6.3 システム変数 innodb_undo_tablespaces
スコプ グロバル 動的 いいえ 型 数値 デフォルト 0
最小値 0
最大値 126
ゼロ以外の
innodb_undo_logs
設定を使用する場合に,Undoログが分割されるテブルスペスファ邮箱ルの数です。デフォルトでは,すべてのUndoログはシステムテブルスペスの一部であり,システムテ,ブルスペ,スには,innodb_undo_tablespaces
で構成されたものに加えて,常に1のUndoテ。長時間実行されるトランザクション中に撤销ログが大きくなる可能性があるため,撤销ログを複数のテーブルスペースに分割すると,任意の1つのテーブルスペースの最大サイズが削減されます。テブルスペスファルは,innodb_undo_directory
で定義された場所に,撤销
形式の名前で作成されます。ここでN
N
は,先頭のゼロを含む一連の連続する整数です。Undoテ。はじめてInnoDB
を初期化するときは,innodb_undo_tablespaces
の数を設定する必要があります。最初にデタベスを作成したときに指定したときよりも多くの数のUndoテInnoDB
を再起動しようとすると,起動に失敗し,InnoDB
で予期された数のUndoテブルスペスが見。 -
コマンド行形式 ——innodb-use-native-aio = #
システム変数 innodb_use_native_aio
スコプ グロバル 動的 いいえ 型 ブル デフォルト 在
Linuxの非同期I/Oサブシステムを使用するかどうかを指定します。この変数はLinuxシステムにのみ適用され,サの実行中は変更できません。このオプションはデフォルトで有効になっているため,通常は触れる必要がありません。
MySQL 5.5の時点では,Windowsシステム上の
InnoDB
に備わっている非同期I/O機能がLinuxシステムでも使用できます。(その他の Unix に似たシステムでは、引き続き同期 I/O 呼び出しが使用されます。)この機能によって、I/O 負荷の高いシステムの拡張性が改善されます。一般に、显示引擎innodb状态
コマンドの出力に数多くの中断された読み取り/書き込みが表示されます。大量の
InnoDB
I / Oスレッドとともに実行すると(特に,同じサーバーマシン上で複数のこのようなインスタンスを実行すると),Linuxシステムの能力制限を超える可能性があります。この場合,次のエラを受信する可能性があります。EAGAIN:指定的maxevents超出了用户可用事件的限制。
一般に,
/proc/sys/fs/aio-max-nr
により大きな制限を記述すれば,このエラに対処できます。ただし,osの非同期I/Oサブシステムの問題によって
InnoDB
が起動しない場合は,innodb_use_native_aio = 0
を無効にして(オプションファルで)innodb_use_native_aio = 0
を使用します)、サバを起動してください。また,InnoDB
でtmpdir
の場所,tmpfs
ファルシステム,およびtmpfs
上でAIOがサポートされていないLinuxカーネルなどを組み合わせた潜在的な問題が検出された場合に,このオプションが起動中に自動的にオフになる可能性もあります。 -
コマンド行形式 ——innodb-use-sys-malloc = #
非推奨 5.6.3 システム変数 innodb_use_sys_malloc
スコプ グロバル 動的 いいえ 型 ブル デフォルト 在
InnoDB
がオペレティングシステムのメモリアロケタを使用するのか(在
)、独自のものを使用するのか(从
を指定します。デフォルト値は在
です。詳細は,セクション14.13.3 " InnoDBのためのメモリアロケタの構成"を参照してください。MySQL 5.6.3の時点では,
innodb_use_sys_malloc
は非推奨となり,今後のMySQLリリスで削除される予定です。 InnoDB
のバジョン番号です.5.6.11以降では,InnoDB
ごとに個別の番号付与が廃止され,この値は版本
変数の番号と同じです。-
コマンド行形式 ——innodb-write-io-threads = #
システム変数 innodb_write_io_threads
スコプ グロバル 動的 いいえ 型 数値 デフォルト 4
最小値 1
最大値 64
InnoDB
の書き込み操作で使用されるI/Oスレッドの数です。デフォルト値は4です。読み取りスレッドで対応するものは,innodb_read_io_threads
です。詳細は,セクション14.13.6 " InnoDBバックグラウンドI/Oスレッドの数の構成"を参照してください。一般的なI/Oチュセクション8.5.7 " InnoDBディスクI/Oの最適化"を参照してください。注記Linuxシステムでは,デフォルトの
innodb_read_io_threads
設定で複数(一般には12台よりも多く)のMySQLサバを実行すると,innodb_write_io_threads
およびLinuxのaio-max-nr
設定がシステムの制限を超過する可能性があります。理想的にはaio-max-nr
設定を大きくします。回避策として,MySQL構成オプションの一方または両方の設定を小さくするとよいでしょう。
また、ディスクへのバ以及ナリログの同期を制御するsync_binlog
の値も考慮に入れるようにしてください。
一般的なI/Oチュセクション8.5.7 " InnoDBディスクI/Oの最適化"を参照してください。