TiDBConfiguration / コンフィグレーションファイル
TiDB構成ファイルは、コマンドラインパラメーターよりも多くのオプションをサポートしています。デフォルトの構成ファイルconfig.toml.example
をダウンロードして、名前をconfig.toml
に変更できます。このドキュメントでは、 コマンドラインオプションに関係しないオプションについてのみ説明します。
split-table
- テーブルごとに個別のリージョンを作成するかどうかを決定します。
- デフォルト値:
true
- 多数のテーブル(たとえば、10万を超えるテーブル)を作成する必要がある場合は、
false
に設定することをお勧めします。
token-limit
- リクエストを同時に実行できるセッションの数。
- タイプ:整数
- デフォルト値:
1000
- 最小値:
1
- 最大値(64ビットプラットフォーム):
18446744073709551615
- 最大値(32ビットプラットフォーム):
4294967295
mem-quota-query
- 1つのSQLステートメントで使用可能な最大メモリー。
- デフォルト値:
1073741824
(バイト単位) - 注:クラスタをv2.0.xまたはv3.0.xからv4.0.9以降のバージョンにアップグレードする場合、この構成のデフォルト値は
34359738368
です。 - この値よりも多くのメモリを必要とするリクエストは、
oom-action
で定義された動作に基づいて処理されます。 - この値は、システム変数
tidb_mem_quota_query
の初期値です。
oom-use-tmp-storage
- 1つのSQLステートメントが
mem-quota-query
で指定されたメモリクォータを超えたときに、一部のオペレータの一時ストレージを有効にするかどうかを制御します。 - デフォルト値:
true
tmp-storage-path
- 1つのSQLステートメントが
mem-quota-query
で指定されたメモリクォータを超えた場合に、一部のオペレータの一時ストレージパスを指定します。 - デフォルト値:
<temporary directory of OS>/<OS user ID>_tidb/MC4wLjAuMDo0MDAwLzAuMC4wLjA6MTAwODA=/tmp-storage
。MC4wLjAuMDo0MDAwLzAuMC4wLjA6MTAwODA=
は<host>:<port>/<statusHost>:<statusPort>
のBase64
エンコード結果です。 - この構成は、
oom-use-tmp-storage
がtrue
の場合にのみ有効になります。
tmp-storage-quota
tmp-storage-path
のストレージのクォータを指定します。単位はバイトです。- 単一のSQLステートメントが一時ディスクを使用し、TiDBサーバーの一時ディスクの合計ボリュームがこの構成値を超えると、現在のSQL操作がキャンセルされ、
Out of Global Storage Quota!
エラーが返されます。 - この構成の値が
0
より小さい場合、上記のチェックと制限は適用されません。 - デフォルト値:
-1
tmp-storage-path
の残りの使用可能なストレージがtmp-storage-quota
で定義された値よりも少ない場合、TiDBサーバーは起動時にエラーを報告し、終了します。
oom-action
- 1つのSQLステートメントが
mem-quota-query
で指定されたメモリクォータを超え、ディスクにスピルオーバーできない場合にTiDBが実行する操作を指定します。 - デフォルト値:
"cancel"
(TiDB v4.0.2以前のバージョンでは、デフォルト値は"log"
です) - 有効なオプションは
"log"
と"cancel"
です。oom-action="log"
の場合、ログのみを出力します。oom-action="cancel"
の場合、操作をキャンセルしてログを出力します。
lower-case-table-names
lower_case_table_names
システム変数の値を構成します。デフォルト値:
2
詳細については、この変数のMySQLの説明を参照してください。
ノート:
現在、TiDBはこのオプションの値を
2
に設定することのみをサポートしています。つまり、テーブル名を保存するときは大文字と小文字が区別されますが、テーブル名を比較するときは大文字と小文字が区別されません。比較は小文字に基づいています。
lease
- DDLリースのタイムアウト。
- デフォルト値:
45s
- 単位:秒
compatible-kill-query
KILL
ステートメントをMySQL互換に設定するかどうかを決定します。- デフォルト値:
false
- TiDBでの
KILL xxx
の動作は、MySQLでの動作とは異なります。 TiDBにはTIDB
のキーワード、つまりKILL TIDB xxx
が必要です。compatible-kill-query
がtrue
に設定されている場合、TIDB
キーワードは必要ありません。 - ユーザーがCtrl + Cを押したときのMySQLコマンドラインクライアントのデフォルトの動作は、バックエンドへの新しい接続を作成し、その新しい接続で
KILL
ステートメントを実行することであるため、この区別は重要です。ロードバランサーまたはプロキシが新しい接続を元のセッションとは異なるTiDBサーバーインスタンスに送信した場合、間違ったセッションが終了し、クラスタを使用するアプリケーションが中断される可能性があります。KILL
ステートメントで参照している接続が、KILL
ステートメントの送信先と同じサーバー上にあることが確実な場合にのみ、compatible-kill-query
を有効にします。
check-mb4-value-in-utf8
utf8mb4
文字チェックを有効にするかどうかを決定します。この機能を有効にした場合、文字セットがutf8
で、mb4
文字がutf8
に挿入されると、エラーが返されます。- デフォルト値:
false
treat-old-version-utf8-as-utf8mb4
- 古いテーブルの
utf8
文字セットをutf8mb4
として扱うかどうかを決定します。 - デフォルト値:
true
alter-primary-key
(非推奨)
- 主キー制約を列に追加するか、列から削除するかを決定します。
- デフォルト値:
false
- このデフォルト設定では、主キー制約の追加または削除はサポートされていません。この機能を有効にするには、
alter-primary-key
をtrue
に設定します。ただし、スイッチがオンになる前にテーブルがすでに存在し、その主キー列のデータ型が整数である場合、この構成項目をtrue
に設定しても、列から主キーを削除することはできません。
ノート:
この構成アイテムは非推奨になり、現在、
@tidb_enable_clustered_index
の値がINT_ONLY
の場合にのみ有効になります。主キーを追加または削除する必要がある場合は、テーブルを作成するときに代わりにNONCLUSTERED
キーワードを使用してください。CLUSTERED
タイプの主キーの詳細については、 クラスター化されたインデックスを参照してください。
server-version
- 次の状況でTiDBによって返されるバージョン文字列を変更します。
- 内蔵の
VERSION()
機能を使用する場合。 - TiDBがクライアントへの初期接続を確立し、サーバーのバージョン文字列を含む初期ハンドシェイクパケットを返す場合。詳細については、 MySQL初期ハンドシェイクパケットを参照してください。
- 内蔵の
- デフォルト値: ""
- デフォルトでは、TiDBバージョン文字列の形式は
5.7.${mysql_latest_minor_version}-TiDB-${tidb_version}
です。
repair-mode
- 信頼できない修復モードを有効にするかどうかを決定します。
repair-mode
がtrue
に設定されている場合、repair-table-list
の不良テーブルをロードできません。 - デフォルト値:
false
repair
構文はデフォルトではサポートされていません。これは、TiDBの起動時にすべてのテーブルがロードされることを意味します。
repair-table-list
repair-table-list
は、repair-mode
がtrue
に設定されている場合にのみ有効です。repair-table-list
は、インスタンスで修復する必要がある不良テーブルのリストです。リストの例は、["db.table1"、"db.table2"...]です。- デフォルト値:[]
- リストはデフォルトでは空です。これは、修復する必要のある不良テーブルがないことを意味します。
new_collations_enabled_on_first_bootstrap
- 新しい照合順序サポートを有効または無効にします。
- デフォルト値:
false
- 注:この構成は、最初に初期化されたTiDBクラスタに対してのみ有効です。初期化後、この構成アイテムを使用して、新しい照合順序サポートを有効または無効にすることはできません。 TiDBクラスタがv4.0にアップグレードされると、クラスタは以前に初期化されているため、この構成アイテムの
true
とfalse
の両方の値がfalse
と見なされます。
max-server-connections
- TiDBで許可される同時クライアント接続の最大数。リソースを制御するために使用されます。
- デフォルト値:
0
- デフォルトでは、TiDBは同時クライアント接続の数に制限を設定していません。この構成アイテムの値が
0
より大きく、実際のクライアント接続の数がこの値に達すると、TiDBサーバーは新しいクライアント接続を拒否します。
max-index-length
- 新しく作成されたインデックスの最大許容長を設定します。
- デフォルト値:
3072
- 単位:バイト
- 現在、有効な値の範囲は
[3072, 3072*4]
です。 MySQLとTiDB(バージョン<v3.0.11)にはこの構成項目はありませんが、どちらも新しく作成されたインデックスの長さを制限します。 MySQLのこの制限は3072
です。 TiDB(バージョン= <3.0.7)では、この制限は3072*4
です。 TiDB(3.0.7 <バージョン<3.0.11)では、この制限は3072
です。この構成は、MySQLおよび以前のバージョンのTiDBと互換性があるように追加されています。
table-column-count-limit
limitv5.0の新機能
- 1つのテーブルの列数の制限を設定します。
- デフォルト値:
1017
- 現在、有効な値の範囲は
[1017, 4096]
です。
index-limit
limitv5.0の新機能
- 1つのテーブルのインデックス数の制限を設定します。
- デフォルト値:
64
- 現在、有効な値の範囲は
[64, 512]
です。
enable-telemetry
telemetryv4.0.2の新機能
- TiDBのテレメトリ収集を有効または無効にします。
- デフォルト値:
true
- この構成がすべてのTiDBインスタンスで
false
に設定されている場合、TiDBのテレメトリ収集は無効になり、tidb_enable_telemetry
システム変数は有効になりません。詳細については、 テレメトリーを参照してください。
enable-tcp4-only
新機能
- TCP4でのみリスニングを有効または無効にします。
- デフォルト値:
false
- このオプションを有効にすると、TiDBをLVSとともにロードバランシングに使用する場合に役立ちます。これは、 TCPヘッダーからの実際のクライアントIPが「tcp4」プロトコルによって正しく解析されるためです。
enable-enum-length-limit
limitv5.0の新機能
- 単一の
ENUM
要素と単一のSET
要素の最大長を制限するかどうかを決定します。 - デフォルト値:
true
- この構成値が
true
の場合、単一のENUM
要素と単一のSET
要素の最大長は255文字であり、 MySQL 8.0と互換性があります。この構成値がfalse
の場合、TiDB(v5.0より前)と互換性のある単一要素の長さに制限はありません。
graceful-wait-before-shutdown
の新機能
- サーバーをシャットダウンするときにTiDBが待機する秒数を指定します。これにより、クライアントが切断できるようになります。
- デフォルト値:
0
- TiDBが(猶予期間中に)シャットダウンを待機している場合、HTTPステータスは障害を示し、ロードバランサーがトラフィックを再ルーティングできるようにします。
ログ
ログに関連するConfiguration / コンフィグレーション項目。
level
- ログ出力レベルを指定します。
info
のオプションwarn
debug
、fatal
error
- デフォルト値:
info
format
- ログ出力形式を指定します。
- 値のオプション:
json
およびtext
。 - デフォルト値:
text
enable-timestamp
- ログでタイムスタンプ出力を有効にするかどうかを決定します。
- デフォルト値:
null
- 値を
false
に設定すると、ログはタイムスタンプを出力しません。
ノート:
- 下位互換性を保つために、最初の
disable-timestamp
の構成項目は引き続き有効です。ただし、disable-timestamp
の値がenable-timestamp
の値と意味的に競合する場合(たとえば、enable-timestamp
とdisable-timestamp
の両方がtrue
に設定されている場合)、TiDBはdisable-timestamp
の値を無視します。- 現在、TiDBは
disable-timestamp
を使用して、タイムスタンプをログに出力するかどうかを決定します。この状況では、enable-timestamp
の値はnull
です。- それ以降のバージョンでは、
disable-timestamp
の構成が削除されます。disable-timestamp
を破棄し、意味的に理解しやすいenable-timestamp
を使用します。
enable-slow-log
- 低速クエリログを有効にするかどうかを決定します。
- デフォルト値:
true
- 低速クエリログを有効にするには、
enable-slow-log
をtrue
に設定します。それ以外の場合は、false
に設定します。
slow-query-file
- 低速クエリログのファイル名。
- デフォルト値:
tidb-slow.log
- スローログのフォーマットはTiDBv2.1.8で更新されているため、スローログは個別にスローログファイルに出力されます。 v2.1.8より前のバージョンでは、この変数はデフォルトで「」に設定されています。
- 設定後、スロークエリログが別途このファイルに出力されます。
slow-threshold
- スローログに消費時間のしきい値を出力します。
- デフォルト値:
300ms
- クエリの値がデフォルト値よりも大きい場合、それは低速クエリであり、低速ログに出力されます。
record-plan-in-slow-log
- 実行プランを低速ログに記録するかどうかを決定します。
- デフォルト値:
1
0
は無効にすることを意味し、1
(デフォルト)は有効にすることを意味します。このパラメーターの値は、tidb_record_plan_in_slow_log
システム変数の初期値です。
expensive-threshold
expensive
の操作の行数のしきい値を出力します。- デフォルト値:
10000
- クエリ行の数(統計に基づく中間結果を含む)がこの値よりも大きい場合、それは
expensive
操作であり、プレフィックスが[EXPENSIVE_QUERY]
のログを出力します。
query-log-max-len
- SQL出力の最大長。
- デフォルト値:
4096
- ステートメントの長さが
query-log-max-len
より大きい場合、ステートメントは切り捨てられて出力されます。
log.file
ログファイルに関連するConfiguration / コンフィグレーション項目。
filename
- 一般ログファイルのファイル名。
- デフォルト値: ""
- 設定すると、このファイルにログが出力されます。
max-size
- ログファイルのサイズ制限。
- デフォルト値:300
- 単位:MB
- 最大値は4096です。
max-days
- ログが保持される最大日数。
- デフォルト値:
0
- ログはデフォルトで保持されます。値を設定すると、期限切れのログは
max-days
秒後にクリーンアップされます。
max-backups
- 保持されるログの最大数。
- デフォルト値:
0
- デフォルトでは、すべてのログファイルが保持されます。
7
に設定すると、最大7つのログファイルが保持されます。
安全
セキュリティに関連するConfiguration / コンフィグレーション項目。
require-secure-transport
- クライアントがデータ転送にセキュアモードを使用することを要求するかどうかを決定します。
- デフォルト値:
false
enable-sem
- セキュリティ拡張モード(SEM)を有効にします。
- デフォルト値:
false
- SEMのステータスは、システム変数
tidb_enable_enhanced_security
を介して入手できます。
ssl-ca
- PEM形式の信頼できるCA証明書のファイルパス。
- デフォルト値: ""
- このオプションと
--ssl-cert
を同時に設定すると、--ssl-key
は、クライアントが証明書を提示するときに、このオプションで指定された信頼できるCAのリストに基づいてクライアント証明書を認証します。認証に失敗すると、接続は終了します。 - このオプションを設定しても、クライアントが証明書を提示しない場合、クライアント証明書認証なしで安全な接続が続行されます。
ssl-cert
- PEM形式のSSL証明書のファイルパス。
- デフォルト値: ""
- このオプションと
--ssl-key
を同時に設定すると、TiDBは、クライアントがTLSを使用してTiDBに安全に接続することを許可します(強制はしません)。 - 指定された証明書または秘密鍵が無効な場合、TiDBは通常どおり起動しますが、安全な接続を受信できません。
ssl-key
- PEM形式のSSL証明書キーのファイルパス、つまり
--ssl-cert
で指定された証明書の秘密キー。 - デフォルト値: ""
- 現在、TiDBはパスワードで保護された秘密鍵のロードをサポートしていません。
cluster-ssl-ca
- TiKVまたはPDをTLSに接続するために使用されるCAルート証明書。
- デフォルト値: ""
cluster-ssl-cert
- TiKVまたはPDをTLSに接続するために使用されるSSL証明書ファイルのパス。
- デフォルト値: ""
cluster-ssl-key
- TiKVまたはPDをTLSに接続するために使用されるSSL秘密鍵ファイルのパス。
- デフォルト値: ""
spilled-file-encryption-method
- こぼれたファイルをディスクに保存するために使用される暗号化方法を決定します。
- デフォルト値:
"plaintext"
、これは暗号化を無効にします。 - オプション値:
"plaintext"
および"aes128-ctr"
auto-tls
- 起動時にTLS証明書を自動的に生成するかどうかを決定します。
- デフォルト値:
false
tls-version
- MySQLプロトコル接続の最小TLSバージョンを設定します。
- デフォルト値: ""、TLSv1.1以降を許可します。
- オプションの
"TLSv1.1"
:"TLSv1.0"
、"TLSv1.3"
"TLSv1.2"
パフォーマンス
パフォーマンスに関連するConfiguration / コンフィグレーション項目。
max-procs
- TiDBが使用するCPUの数。
- デフォルト値:
0
- デフォルトの
0
は、マシン上のすべてのCPUを使用することを示します。 nに設定することもでき、TiDBはn個のCPUを使用します。
server-memory-quota
quotav4.0.9の新機能
- tidb-serverインスタンスのメモリ使用制限。
- デフォルト値:
0
(バイト単位)。これは、メモリ制限がないことを意味します。
memory-usage-alarm-ratio
ratiov4.0.9の新機能
- TiDBは、tidb-serverインスタンスのメモリ使用量が特定のしきい値を超えるとアラームをトリガーします。この構成アイテムの有効な値の範囲は
0
1
。0
または1
として設定されている場合、このアラーム機能は無効になります。 - デフォルト値:
0.8
- メモリ使用量アラームが有効になっている場合、
server-memory-quota
が設定されていない場合、メモリ使用量のしきい値はthe `memory-usage-alarm-ratio` value * the system memory size
です。server-memory-quota
が0より大きい値に設定されている場合、メモリ使用量のしきい値はthe `memory-usage-alarm-ratio` value * the `server-memory-quota` value
です。 - TiDBは、tidb-serverインスタンスのメモリ使用量がしきい値を超えたことを検出すると、OOMのリスクがある可能性があると見なします。したがって、メモリ使用量が最も多い10個のSQLステートメント、実行時間が最も長い10個のSQLステートメント、および現在実行中のすべてのSQLステートメントのヒーププロファイルをディレクトリ
tmp-storage-path/record
に記録し、キーワードtidb-server has the risk of OOM
を含むログを出力します。 - この構成項目の値は、システム変数
tidb_memory_usage_alarm_ratio
の初期値です。
max-txn-ttl
- 1つのトランザクションがロックを保持できる最長の時間。この時間を超えると、トランザクションのロックが他のトランザクションによってクリアされ、このトランザクションを正常にコミットできなくなる可能性があります。
- デフォルト値:
3600000
- 単位:ミリ秒
- この時間より長くロックを保持するトランザクションは、コミットまたはロールバックすることしかできません。コミットが成功しない可能性があります。
committer-concurrency
- 単一トランザクションのコミットフェーズでのコミットの実行に関連するリクエストのゴルーチンの数。
- デフォルト値:
128
- コミットするトランザクションが大きすぎる場合、トランザクションがコミットされるときのフロー制御キューの待機時間が長すぎる可能性があります。この状況では、構成値を増やしてコミットを高速化できます。
stmt-count-limit
- 1つのTiDBトランザクションで許可されるステートメントの最大数。
- デフォルト値:
5000
- ステートメントの数が
stmt-count-limit
を超えた後、トランザクションがロールバックまたはコミットされない場合、TiDBはstatement count 5001 exceeds the transaction limitation, autocommit = false
エラーを返します。この構成は、再試行可能なオプティミスティックトランザクションでのみ有効になります。ペシミスティックトランザクションを使用する場合、またはトランザクションの再試行を無効にした場合、トランザクション内のステートメントの数はこの構成によって制限されません。
txn-entry-size-limit
新機能
- TiDBの単一行のデータのサイズ制限。
- デフォルト値:
6291456
(バイト単位) - トランザクション内の単一のKey-Valueレコードのサイズ制限。サイズ制限を超えると、TiDBは
entry too large
エラーを返します。この構成アイテムの最大値は125829120
(120 MB)を超えません。 - TiKVにも同様の制限があることに注意してください。単一の書き込み要求のデータサイズが
raft-entry-max-size
(デフォルトでは8 MB)を超える場合、TiKVはこの要求の処理を拒否します。テーブルに大きなサイズの行がある場合は、両方の構成を同時に変更する必要があります。
txn-total-size-limit
- TiDBでの単一トランザクションのサイズ制限。
- デフォルト値:
104857600
(バイト単位) - 1つのトランザクションでは、Key-Valueレコードの合計サイズがこの値を超えることはできません。このパラメーターの最大値は
1099511627776
(1 TB)です。 binlogを使用してダウンストリームコンシューマーKafka(arbiter
クラスタなど)にサービスを提供した場合、このパラメーターの値は1073741824
(1 GB)以下でなければならないことに注意してください。これは、Kafkaが処理できる単一のメッセージサイズの上限が1GBであるためです。それ以外の場合、この制限を超えるとエラーが返されます。
tcp-keep-alive
- TCP層で
keepalive
を有効にするかどうかを決定します。 - デフォルト値:
true
tcp-no-delay
- TCP層でTCP_NODELAYを有効にするかどうかを決定します。有効にした後、TiDBはTCP / IPプロトコルのNagleアルゴリズムを無効にし、小さなデータパケットを送信してネットワーク遅延を削減できるようにします。これは、データの送信量が少ない、遅延の影響を受けやすいアプリケーションに適しています。
- デフォルト値:
true
cross-join
- デフォルト値:
true
- TiDBは、デフォルトで両側テーブルの条件なしで
JOIN
ステートメント(WHERE
フィールド)を実行することをサポートします。値をfalse
に設定すると、そのようなJOIN
ステートメントが表示されたときにサーバーは実行を拒否します。
stats-lease
- 統計の再ロード、テーブル行数の更新、自動分析の実行が必要かどうかの確認、フィードバックを使用した統計の更新、および列の統計のロードの時間間隔。
- デフォルト値:
3s
stats-lease
回の間隔で、TiDBは更新の統計をチェックし、更新が存在する場合はそれらをメモリに更新します。- TiDBは、
20 * stats-lease
回の間隔で、DMLによって生成された行の総数と変更された行の数をシステムテーブルに更新します。 - TiDBは、
stats-lease
の間隔で、自動的に分析する必要のあるテーブルとインデックスをチェックします。 stats-lease
の間隔で、TiDBはメモリにロードする必要のある列統計をチェックします。200 * stats-lease
の間隔で、TiDBはメモリにキャッシュされたフィードバックをシステムテーブルに書き込みます。5 * stats-lease
の間隔で、TiDBはシステムテーブルのフィードバックを読み取り、メモリにキャッシュされている統計を更新します。
stats-lease
が0に設定されている場合、TiDBはシステムテーブルのフィードバックを定期的に読み取り、メモリにキャッシュされている統計を3秒ごとに更新します。ただし、TiDBは、次の統計関連のシステムテーブルを自動的に変更しなくなりました。mysql.stats_meta
:TiDBは、トランザクションによって変更されたテーブル行の数を自動的に記録し、このシステムテーブルに更新しなくなりました。mysql.stats_top_n
mysql.stats_buckets
mysql.stats_histograms
は、統計を自動的に分析してプロアクティブに更新しなくなりました。mysql.stats_feedback
:TiDBは、クエリされたデータによって返された統計の一部に従って、テーブルとインデックスの統計を更新しなくなりました。
run-auto-analyze
- TiDBが自動分析を実行するかどうかを決定します。
- デフォルト値:
true
feedback-probability
- TiDBが各クエリのフィードバック統計を収集する確率。
- デフォルト値:
0
- この機能はデフォルトで無効になっているため、この機能を有効にすることはお勧めしません。有効になっている場合、TiDBは統計を更新するために
feedback-probability
の確率で各クエリのフィードバックを収集します。
query-feedback-limit
- メモリにキャッシュできるクエリフィードバックの最大数。この制限を超える余分なフィードバックは破棄されます。
- デフォルト値:
1024
pseudo-estimate-ratio
- テーブル内の(変更された行の数)/(行の総数)の比率。値を超えると、システムは統計の有効期限が切れていると見なし、疑似統計が使用されます。
- デフォルト値:
0.8
- 最小値は
0
、最大値は1
です。
force-priority
- すべてのステートメントの優先度を設定します。
- デフォルト:
NO_PRIORITY
- オプションの
LOW_PRIORITY
:NO_PRIORITY
、DELAYED
HIGH_PRIORITY
distinct-agg-push-down
- オプティマイザーが、
Distinct
(select count(distinct a) from t
など)の集計関数をコプロセッサーにプッシュダウンする操作を実行するかどうかを決定します。 - デフォルト:
false
- この変数は、システム変数
tidb_opt_distinct_agg_push_down
の初期値です。
enforce-mpp
- オプティマイザのコスト見積もりを無視し、クエリの実行にTiFlashのMPPモードを強制的に使用するかどうかを決定します。
- デフォルト値:
false
- この構成項目は、
tidb_enforce_mpp
の初期値を制御します。たとえば、この構成項目がtrue
に設定されている場合、デフォルト値のtidb_enforce_mpp
はON
です。
準備された計画キャッシュ
PREPARE
ステートメントのplan cache
構成。
enabled
PREPARE
ステートメントのプランキャッシュを有効にするかどうかを決定します。- デフォルト値:
false
capacity
- キャッシュされたステートメントの数。
- デフォルト値:
1000
- タイプは
UINT
です。0
未満の値は、大きな整数に変換されます。
memory-guard-ratio
performance.max-memory
を超えないようにするために使用します。max-memory * (1 - prepared-plan-cache.memory-guard-ratio)
を超えると、LRU内の要素が削除されます。- デフォルト値:
0.1
- 最小値は
0
です。最大値は1
です。
オープントレース
オープントレースに関連するConfiguration / コンフィグレーション項目。
enable
- opentracingを有効にして、一部のTiDBコンポーネントの呼び出しオーバーヘッドをトレースします。オープントレースを有効にすると、パフォーマンスが低下することに注意してください。
- デフォルト値:
false
rpc-metrics
- RPCメトリックを有効にします。
- デフォルト値:
false
opentracing.sampler
opentracing.samplerに関連するConfiguration / コンフィグレーション項目。
type
- オープントレースサンプラーのタイプを指定します。
- デフォルト値:
"const"
"probabilistic"
の"remote"
"rateLimiting"
"const"
param
- オープントレースサンプラーのパラメーター。
const
タイプの場合、値は0
または1
になり、const
サンプラーを有効にするかどうかを示します。probabilistic
タイプの場合、パラメーターはサンプリング確率を指定します。これは、0
から1
までの浮動小数点数にすることができます。rateLimiting
タイプの場合、パラメーターは1秒あたりにサンプリングされるスパンの数を指定します。remote
タイプの場合、パラメーターはサンプリング確率を指定します。これは、0
から1
までの浮動小数点数にすることができます。
- デフォルト値:
1.0
sampling-server-url
- jaeger-agentサンプリングサーバーのHTTPURL。
- デフォルト値:
""
max-operations
- サンプラーがトレースできる操作の最大数。操作がトレースされない場合は、デフォルトの確率的サンプラーが使用されます。
- デフォルト値:
0
sampling-refresh-interval
- jaeger-agentサンプリングポリシーのポーリングの頻度を制御します。
- デフォルト値:
0
opentracing.reporter
opentracing.reporterに関連するConfiguration / コンフィグレーションアイテム。
queue-size
- レポーターがメモリ内で記録するキューサイズ。
- デフォルト値:
0
buffer-flush-interval
- レポーターがメモリ内のスパンをストレージにフラッシュする間隔。
- デフォルト値:
0
log-spans
- 送信されたすべてのスパンのログを印刷するかどうかを決定します。
- デフォルト値:
false
local-agent-host-port
- レポーターが送信するアドレスは、jaeger-agentにまたがっています。
- デフォルト値:
""
tikv-client
grpc-connection-count
- 各TiKVで確立された接続の最大数。
- デフォルト値:
4
grpc-keepalive-time
- TiDBノードとTiKVノード間のRPC接続の
keepalive
時間間隔。指定された時間間隔内にネットワークパケットがない場合、gRPCクライアントはTiKVに対してping
コマンドを実行して、それが生きているかどうかを確認します。 - デフォルト:
10
- 単位:秒
grpc-keepalive-timeout
- TiDBノードと
keepalive
ノード間のRPC1チェックのタイムアウト。 - デフォルト値:
3
- 単位:秒
commit-timeout
- トランザクションコミットを実行するときの最大タイムアウト。
- デフォルト値:
41s
- この値は、ラフト選挙タイムアウトの2倍より大きく設定する必要があります。
max-batch-size
- バッチで送信されるRPCパケットの最大数。値が
0
でない場合、BatchCommands
APIを使用してTiKVにリクエストを送信し、同時実行性が高い場合にRPCレイテンシを短縮できます。この値は変更しないことをお勧めします。 - デフォルト値:
128
max-batch-wait-time
max-batch-wait-time
がデータパケットをバッチで大きなパケットにカプセル化し、TiKVノードに送信するのを待ちます。tikv-client.max-batch-size
の値が0
より大きい場合にのみ有効です。この値は変更しないことをお勧めします。- デフォルト値:
0
- 単位:ナノ秒
batch-wait-size
- バッチでTiKVに送信されるパケットの最大数。この値は変更しないことをお勧めします。
- デフォルト値:
8
- 値が
0
の場合、この機能は無効になります。
overload-threshold
- TiKV負荷のしきい値。 TiKVの負荷がこのしきい値を超えると、TiKVの圧力を軽減するために、さらに
batch
のパケットが収集されます。tikv-client.max-batch-size
の値が0
より大きい場合にのみ有効です。この値は変更しないことをお勧めします。 - デフォルト値:
200
tikv-client.copr-cachev4.0.0の新機能
このセクションでは、コプロセッサー・キャッシュ機能に関連する構成項目を紹介します。
capacity-mb
- キャッシュされたデータの合計サイズ。キャッシュスペースがいっぱいになると、古いキャッシュエントリが削除されます。値が
0.0
の場合、コプロセッサーキャッシュ機能は無効になります。 - デフォルト値:
1000.0
- 単位:MB
- タイプ:フロート
txn-local-latches
トランザクションラッチに関連するConfiguration / コンフィグレーション。多くのローカルトランザクションの競合が発生した場合に有効にすることをお勧めします。
enabled
- トランザクションのメモリロックを有効にするかどうかを決定します。
- デフォルト値:
false
capacity
- ハッシュに対応するスロットの数。2の指数倍数に自動的に上方修正されます。各スロットは32バイトのメモリを占有します。設定が小さすぎると、データの書き込みが比較的広い範囲(データのインポートなど)をカバーするシナリオで、実行速度が低下し、パフォーマンスが低下する可能性があります。
- デフォルト値:
2048000
binlog
TiDBBinlogに関連する構成。
enable
- binlogを有効または無効にします。
- デフォルト値:
false
write-timeout
- binlogをPumpに書き込むタイムアウト。この値を変更することはお勧めしません。
- デフォルト:
15s
- 単位:秒
ignore-error
- binlogをPumpに書き込むプロセスで発生したエラーを無視するかどうかを決定します。この値を変更することはお勧めしません。
- デフォルト値:
false
- 値が
true
に設定されていてエラーが発生すると、TiDBはbinlogの書き込みを停止し、tidb_server_critical_error_total
の監視項目のカウントに1
を追加します。値がfalse
に設定されている場合、binlogの書き込みは失敗し、TiDBサービス全体が停止します。
binlog-socket
- binlogのエクスポート先のネットワークアドレス。
- デフォルト値: ""
strategy
- binlogがエクスポートされるときのポンプ選択の戦略。現在、
hash
つとrange
の方法のみがサポートされています。 - デフォルト値:
range
状態
TiDBサービスのステータスに関連するConfiguration / コンフィグレーション。
report-status
- HTTPAPIサービスを有効または無効にします。
- デフォルト値:
true
record-db-qps
- データベース関連のQPSメトリックをPrometheusに送信するかどうかを決定します。
- デフォルト値:
false
stmt- summaryv3.0.4の新機能
ステートメント要約表に関連する構成。
max-stmt-count
- ステートメント要約表に保存できるSQLカテゴリの最大数。
- デフォルト値:
3000
max-sql-length
- ステートメント要約表の
DIGEST_TEXT
列とQUERY_SAMPLE_TEXT
列の最長表示長。 - デフォルト値:
4096
悲観的-txn
悲観的なトランザクションの使用法については、 TiDB悲観的トランザクションモードを参照してください。
max-retry-count
- 悲観的トランザクションにおける各ステートメントの最大再試行回数。再試行回数がこの制限を超えると、エラーが発生します。
- デフォルト値:
256
デッドロック-履歴-容量
- 単一のTiDBサーバーの
INFORMATION_SCHEMA.DEADLOCKS
つのテーブルに記録できるデッドロックイベントの最大数。このテーブルがフルボリュームであり、追加のデッドロックイベントが発生した場合、テーブル内の最も古いレコードが削除され、最新のエラーが発生します。 - デフォルト値:
10
- 最小値:
0
- 最大値:
10000
デッドロック-履歴-収集-再試行可能
INFORMATION_SCHEMA.DEADLOCKS
テーブルが再試行可能なデッドロックエラーの情報を収集するかどうかを制御します。再試行可能なデッドロックエラーの説明については、 再試行可能なデッドロックエラーを参照してください。- デフォルト値:
false
実験的
v3.1.0で導入されたexperimental
のセクションでは、TiDBの実験的機能に関連する構成について説明します。
allow-expression-index
indexv4.0.0の新機能
- 式インデックスを作成できるかどうかを制御します。 TiDB v5.2.0以降、式の関数が安全であれば、この構成を有効にしなくても、この関数に基づいて式インデックスを直接作成できます。他の関数に基づいて式インデックスを作成する場合は、この構成を有効にできますが、正確性の問題が存在する可能性があります。
tidb_allow_function_for_expression_index
変数をクエリすることにより、式の作成に直接使用しても安全な関数を取得できます。 - デフォルト値:
false
stats-load-concurrency
の新機能
- TiDB同期ロード統計機能が同時に処理できる列の最大数。
- デフォルト値:
5
- 現在、有効な値の範囲は
[1, 128]
です。
stats-load-queue-size
sizev5.4.0の新機能
- TiDB同期ロード統計機能がキャッシュできる列要求の最大数。
- デフォルト値:
1000
- 現在、有効な値の範囲は
[1, 100000]
です。