TiDBコンフィグレーションファイル
TiDB 設定ファイルは、コマンドラインパラメータよりも多くのオプションをサポートしています。デフォルトの設定ファイルconfig.toml.exampleをダウンロードし、名前をconfig.tomlに変更することができます。このドキュメントでは、 コマンドラインオプションに関係のないオプションについてのみ説明します。
ヒント:
構成項目の値を調整する必要がある場合は、 設定を変更するを参照してください。
split-table
- 各テーブルに個別のリージョンを作成するかどうかを決定します。
 - デフォルト値: 
true - 多数のテーブル (たとえば、10 万を超えるテーブル) を作成する必要がある場合は、 
falseに設定することをお勧めします。 
tidb-max-reuse-chunkバージョン6.4.0の新機能
- チャンク割り当てにおけるキャッシュチャンクオブジェクトの最大数を制御します。この設定項目の値を大きすぎる値に設定すると、OOM(メモリオーバーフロー)のリスクが高まる可能性があります。
 - デフォルト値: 
64 - 最小値: 
0 - 最大値: 
2147483647 
tidb-max-reuse-columnバージョン6.4.0の新機能
- チャンク割り当てにおけるキャッシュ列オブジェクトの最大数を制御します。この設定項目の値を大きすぎる値に設定すると、OOM(オーバーヘッドメモリ不足)のリスクが高まる可能性があります。
 - デフォルト値: 
256 - 最小値: 
0 - 最大値: 
2147483647 
token-limit
- リクエストを同時に実行できるセッションの数。
 - タイプ: 整数
 - デフォルト値: 
1000 - 最小値: 
1 - 最大値: 
1048576 
temp-dir v6.3.0 の新機能
- TiDBが一時データを保存するために使用するファイルシステムの場所です。TiDBノードにローカルstorageを必要とする機能がある場合、TiDBはこの場所に一時データを保存します。
 - インデックスを作成するときに、 
tidb_ddl_enable_fast_reorg有効にすると、新しく作成されたインデックスのバックフィルが必要なデータは、最初に TiDB のローカル一時ディレクトリに保存され、その後 TiKV にバッチでインポートされるため、インデックスの作成が高速化されます。 IMPORT INTO使用してデータをインポートすると、ソートされたデータは最初に TiDB のローカル一時ディレクトリに保存され、その後 TiKV にバッチでインポートされます。- デフォルト値: 
"/tmp/tidb" 
注記:
ディレクトリが存在しない場合、TiDBは起動時に自動的に作成します。ディレクトリの作成に失敗した場合、またはTiDBにそのディレクトリに対する読み取りおよび書き込み権限がない場合、予期しない問題
Fast Online DDL発生する可能性があります。
oom-use-tmp-storage
- 単一の SQL ステートメントがシステム変数
tidb_mem_quota_queryで指定されたメモリクォータを超えた場合に、一部の演算子の一時storageを有効にするかどうかを制御します。 - デフォルト値: 
true 
tmp-storage-path
- 単一の SQL ステートメントがシステム変数
tidb_mem_quota_queryで指定されたメモリクォータを超えた場合に、一部の演算子の一時storageパスを指定します。 - デフォルト値: 
<temporary directory of OS>/<OS user ID>_tidb/MC4wLjAuMDo0MDAwLzAuMC4wLjA6MTAwODA=/tmp-storage。MC4wLjAuMDo0MDAwLzAuMC4wLjA6MTAwODA=<host>:<port>/<statusHost>:<statusPort>のBase64エンコード結果です。 - この構成は、システム変数
tidb_enable_tmp_storage_on_oomがON場合にのみ有効になります。 
tmp-storage-quota
- storageのクォータを
tmp-storage-pathで指定します。単位はバイトです。 - 単一の SQL 文が一時ディスクを使用し、TiDBサーバーの一時ディスクの合計容量がこの設定値を超えると、現在の SQL 操作はキャンセルされ、エラー
Out of Global Storage Quota!が返されます。 - この設定の値が
0未満の場合、上記のチェックと制限は適用されません。 - デフォルト値: 
-1 tmp-storage-pathの残りの使用可能なstorageがtmp-storage-quotaで定義された値よりも少ない場合、 TiDBサーバーは起動時にエラーを報告し、終了します。
lease
- DDL リースのタイムアウト。
 - デフォルト値: 
45s - 単位: 秒
 
compatible-kill-query
KILLステートメントを MySQL 互換に設定するかどうかを決定します。- デフォルト値: 
false compatible-kill-queryenable-global-killfalseに設定されている場合にのみ有効になります。enable-global-killがfalse場合、compatible-kill-queryクエリを強制終了するときにTIDBキーワードを追加する必要があるかどうかを制御します。compatible-kill-queryがfalse場合、TiDB におけるKILL xxxの動作は MySQL とは異なります。TiDB でクエリを強制終了するには、KILL TIDB xxxのようにTIDBキーワードを付加する必要があります。compatible-kill-queryがtrue場合、TiDB でクエリを強制終了する際にTIDBキーワードを付加する必要はありません。クライアントが常に同じ TiDB インスタンスに接続されることが確実でない限り、設定ファイルでcompatible-kill-queryをtrueに設定することは強く推奨されません。これは、デフォルトの MySQL クライアントでControl + Cを押すと、新しい接続が開かれ、その中でKILL実行されるためです。クライアントと TiDB クラスタの間にプロキシが存在する場合、新しい接続が別の TiDB インスタンスにルーティングされる可能性があり、誤って別のセッションが強制終了される可能性があります。
enable-global-killがtrueの場合、KILL xxxとKILL TIDB xxx同じ効果を持ちます。KILLステートメントの詳細については、 キル [TIDB]参照してください。
check-mb4-value-in-utf8
utf8mb4文字チェックを有効にするかどうかを決定します。この機能を有効にすると、文字セットがutf8で、mb4文字がutf8に挿入された場合にエラーが返されます。- デフォルト値: 
false - v6.1.0以降、 
utf8mb4文字チェックを有効にするかどうかは、TiDB設定項目instance.tidb_check_mb4_value_in_utf8またはシステム変数tidb_check_mb4_value_in_utf8によって決定されます。7check-mb4-value-in-utf8引き続き有効です。ただし、check-mb4-value-in-utf8とinstance.tidb_check_mb4_value_in_utf8両方が設定されている場合は、後者が有効になります。 
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 バージョン文字列の形式は
8.0.11-TiDB-${tidb_version}です。 
注記:
TiDBノードは、現在のTiDBバージョンを確認するために値
server-versionを使用します。したがって、予期しない動作を回避するには、TiDBクラスタをアップグレードする前に、値server-versionを空または現在のTiDBクラスタの実際のバージョンに設定する必要があります。
repair-mode
- 信頼できない修復モードを有効にするかどうかを決定します。1 
repair-modetrueに設定すると、repair-table-list内の不良テーブルをロードできなくなります。 - デフォルト値: 
false repair構文はデフォルトではサポートされていません。つまり、TiDB の起動時にすべてのテーブルがロードされます。
repair-table-list
repair-table-listrepair-modetrueに設定されている場合にのみ有効です。6repair-table-listインスタンス内で修復が必要な不良テーブルのリストです。リストの例は ["db.table1","db.table2"...] です。- デフォルト値: []
 - リストはデフォルトで空です。これは、修復が必要な不良テーブルがないことを意味します。
 
new_collations_enabled_on_first_bootstrap
- 新しい照合順序のサポートを有効または無効にします。
 - デフォルト値: 
true - 注: この設定は、最初に初期化されたTiDBクラスターにのみ適用されます。初期化後は、この設定項目を使用して新しい照合順序のサポートを有効化または無効化することはできません。
 
max-server-connections
- TiDBで許可される同時クライアント接続の最大数。リソースを制御するために使用されます。
 - デフォルト値: 
0 - デフォルトでは、TiDBは同時クライアント接続数に制限を設けていません。この設定項目の値が
0より大きく、実際のクライアント接続数がこの値に達すると、TiDBサーバーは新しいクライアント接続を拒否します。 - バージョン6.2.0以降、TiDB設定項目
instance.max_connectionsまたはシステム変数max_connections使用して、TiDBで許可される最大同時クライアント接続数を設定できます。5max-server-connections引き続き有効です。ただし、max-server-connectionsとinstance.max_connections同時に設定されている場合、9が有効になります。 
max-index-length
- 新しく作成されるインデックスの最大許容長を設定します。
 - デフォルト値: 
3072 - 単位: バイト
 - 範囲: 
[3072, 3072*4] - 互換性:
- MySQL: 最大インデックス長は 3072 バイトに固定されています。
 - TiDB の以前のバージョン:
- v3.0.7 以前: 最大インデックス長は 3072 × 4 バイトに固定されています。
 - v3.0.8 ~ v3.0.10: 最大インデックス長は 3072 バイトに固定されます。
 
 - v3.0.11 以降のバージョン: TiDB では、さまざまな TiDB バージョンおよび MySQL との互換性を確保するために、 
max-index-length構成項目が導入されています。 
 
table-column-count-limit v5.0 の新機能
- 1 つのテーブル内の列の数の制限を設定します。
 - デフォルト値: 
1017 - 現在、有効な値の範囲は
[1017, 4096]です。 
index-limit v5.0 の新機能
- 1 つのテーブル内のインデックスの数の制限を設定します。
 - デフォルト値: 
64 - 現在、有効な値の範囲は
[64, 512]です。 
enable-telemetry v4.0.2 の新機能
- TiDB インスタンスでテレメトリ収集を有効にするかどうかを制御します。
 - デフォルト値: 
false 
deprecate-integer-display-length
- この構成項目が
trueに設定されている場合、整数型の表示幅は非推奨になります。 - デフォルト値: 
true。v8.5.0 より前では、デフォルト値はfalseです。 
enable-tcp4-onlyバージョン5.0の新機能
- TCP4 のみのリッスンを有効または無効にします。
 - デフォルト値: 
false - このオプションを有効にすると、 TCPヘッダーからの実際のクライアントIP 「tcp4」プロトコルによって正しく解析できるため、負荷分散のために TiDB が LVS と共に使用される場合に便利です。
 
enable-enum-length-limit v5.0 の新機能
- 単一の
ENUM要素と単一のSET要素の最大長を制限するかどうかを決定します。 - デフォルト値: 
true - この設定値が
trueの場合、単一のENUM要素と単一のSET要素の最大長は255文字となり、これはMySQL 8.0と互換性があります。この設定値がfalse場合、単一の要素の長さに制限はなく、これはTiDB(v5.0より前)と互換性があります。 
graceful-wait-before-shutdown v5.0 の新機能
- サーバーをシャットダウンしたときにクライアントが切断されるまで TiDB が待機する秒数を指定します。
 - デフォルト値: 
0 - TiDB がシャットダウンを待機している場合 (猶予期間中)、HTTP ステータスは失敗を示し、ロード バランサーがトラフィックを再ルーティングできるようになります。
 
注記:
TiDB がサーバーをシャットダウンする前に待機する時間は、次のパラメータによっても影響を受けます。
SystemDを採用したプラットフォームでは、デフォルトの停止タイムアウトは90秒です。より長いタイムアウトが必要な場合は、
TimeoutStopSec=設定できます。TiUP クラスタコンポーネントを使用する場合、デフォルトは 120
--wait-timeoutです。Kubernetes を使用する場合、デフォルトは
terminationGracePeriodSeconds30 秒です。
enable-global-kill v6.1.0 の新機能
- グローバル キル (インスタンス間のクエリまたは接続の終了) 機能を有効にするかどうかを制御します。
 - デフォルト値: 
true - 値が
trueの場合、KILLとKILL TIDB両方のステートメントでインスタンス間のクエリまたは接続を終了できるため、クエリまたは接続が誤って終了する心配はありません。クライアントを使用して任意の TiDB インスタンスに接続し、KILLまたはKILL TIDBステートメントを実行すると、ステートメントはターゲット TiDB インスタンスに転送されます。クライアントと TiDB クラスターの間にプロキシがある場合は、KILLとKILL TIDBステートメントもターゲット TiDB インスタンスに転送されて実行されます。 - バージョン7.3.0以降では、 
enable-global-killとenable-32bits-connection-id両方をtrueに設定すると、MySQLコマンドラインのControl+Cを使用してクエリまたは接続を終了できます。詳細については、KILL参照してください。 
enable-32bits-connection-id v7.3.0 の新機能
- 32 ビット接続 ID 機能を有効にするかどうかを制御します。
 - デフォルト値: 
true - この設定項目と
enable-global-kill両方をtrueに設定すると、TiDB は32ビットの接続IDを生成します。これにより、MySQL コマンドラインのControl+Cでクエリまたは接続を終了できるようになります。 
initialize-sql-file v6.6.0の新機能
- TiDB クラスターを初めて起動したときに実行される SQL スクリプトを指定します。
 - デフォルト値: 
"" - このスクリプト内のすべてのSQL文は、権限チェックなしで最高権限で実行されます。指定されたSQLスクリプトの実行に失敗した場合、TiDBクラスタの起動に失敗する可能性があります。
 - この構成項目は、システム変数の値の変更、ユーザーの作成、権限の付与などの操作を実行するために使用されます。
 
enable-forwarding v5.0.0 の新機能
- ネットワーク分離の可能性がある場合に、TiDB 内の PD クライアントと TiKV クライアントがフォロワー経由でリーダーにリクエストを転送するかどうかを制御します。
 - デフォルト値: 
false - 環境に分離されたネットワークが存在する可能性がある場合は、このパラメータを有効にすると、サービスが利用できない期間を短縮できます。
 - 分離、ネットワーク中断、またはダウンタイムが発生したかどうかを正確に判断できない場合、このメカニズムを使用すると誤判断のリスクがあり、可用性とパフォーマンスの低下につながります。ネットワーク障害が発生していない場合は、このパラメータを有効にすることは推奨されません。
 
enable-table-lockバージョン 4.0.0 の新機能
- テーブル ロック機能を有効にするかどうかを制御します。
 - デフォルト値: 
false - テーブルロックは、複数のセッション間での同一テーブルへの同時アクセスを調整するために使用されます。現在、 
READ、WRITE、およびWRITE LOCALロックタイプがサポートされています。設定項目がfalseに設定されている場合、LOCK TABLESまたはUNLOCK TABLESステートメントを実行しても効果がなく、「LOCK/UNLOCK TABLES はサポートされていません」という警告が返されます。詳細については、LOCK TABLESとUNLOCK TABLES参照してください。 
labels
- サーバーラベルを指定します。例: 
{ zone = "us-west-1", dc = "dc1", rack = "rack1", host = "tidb1" }。 - デフォルト値: 
{} 
注記:
- TiDBでは、ラベル
 zoneはサーバーが配置されているゾーンを指定するために特別に使用されます。zonenull以外の値に設定されている場合、対応する値はtxn-scoreやFollower readなどの機能によって自動的に使用されます。groupラベルはTiDB Operatorにおいて特別な用途を持ちます。3 TiDB Operator使用してデプロイされたクラスターでは、groupラベルを手動で指定することは推奨されません。
ログ
ログに関するコンフィグレーション項目。
level
- ログ出力レベルを指定します。
 - 値
fatalwarnerrordebuginfo - デフォルト値: 
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設定は削除されます。3disable-timestamp削除し、意味的に理解しやすいenable-timestampを使用してください。
enable-slow-log
- スロー クエリ ログを有効にするかどうかを決定します。
 - デフォルト値: 
true - スロークエリログを有効にするには、 
enable-slow-logをtrueに設定します。有効にしない場合は、falseに設定します。 - v6.1.0以降、スロークエリログを有効にするかどうかは、TiDB設定項目
instance.tidb_enable_slow_logまたはシステム変数tidb_enable_slow_logによって決定されます。5enable-slow-log引き続き有効です。ただし、enable-slow-logとinstance.tidb_enable_slow_log同時に設定されている場合、後者が有効になります。 
slow-query-file
- スロークエリログのファイル名。
 - デフォルト値: 
tidb-slow.log - TiDB v2.1.8ではスローログのフォーマットが更新され、スローログはスローログファイルに別途出力されるようになりました。v2.1.8より前のバージョンでは、この変数はデフォルトで "" に設定されています。
 - 設定後、スロークエリログがこのファイルに別途出力されます。
 
slow-threshold
- 消費時間の閾値をスローログに出力します。
 - デフォルト値: 
300 - 単位: ミリ秒
 - クエリの消費時間がこの値を超える場合、そのクエリはスロークエリとみなされ、スロークエリログにログが出力されます。なお、出力レベル
log.levelが"debug"の場合、このパラメータの設定に関わらず、すべてのクエリがスロークエリログに記録されます。 - バージョン6.1.0以降、スローログの消費時間のしきい値は、TiDB設定項目
instance.tidb_slow_log_thresholdまたはシステム変数tidb_slow_log_thresholdで指定されます。5slow-threshold引き続き有効です。ただし、slow-thresholdとinstance.tidb_slow_log_threshold同時に設定されている場合、後者が有効になります。 
record-plan-in-slow-log
- 実行プランをスロー ログに記録するかどうかを決定します。
 - デフォルト値: 
1 - v6.1.0以降、実行プランをスローログに記録するかどうかは、TiDB設定項目
instance.tidb_record_plan_in_slow_logまたはシステム変数tidb_record_plan_in_slow_logによって決定されます。5record-plan-in-slow-log引き続き有効です。ただし、record-plan-in-slow-logとinstance.tidb_record_plan_in_slow_log同時に設定されている場合、後者が有効になります。 
expensive-threshold
expensive操作の行数のしきい値を出力します。- デフォルト値: 
10000 - クエリ行数(統計に基づく中間結果を含む)がこの値より大きい場合は、 
expensive操作となり、[EXPENSIVE_QUERY]プレフィックスが付いたログが出力されます。 
general-log-file v8.0.0 の新機能
- 一般ログのファイル名。
 - デフォルト値: 
"" - ファイル名を指定すると、一般ログは指定されたファイルに書き込まれます。値が空白の場合、一般ログはTiDBインスタンスのサーバーログに書き込まれます。サーバーログの名前は
filenameで指定できます。 
timeout v7.1.0 の新機能
- TiDBにおけるログ書き込み操作のタイムアウトを設定します。ディスク障害によりログの書き込みができない場合、この設定項目によりTiDBプロセスがハングアップする代わりにpanicになる可能性があります。
 - デフォルト値: 
0、タイムアウトが設定されていないことを示します。 - 単位: 秒
 - 一部のユーザーシナリオでは、TiDB ログがホットプラグ対応ディスクまたはネットワーク接続ディスクに保存され、永続的に利用できなくなる可能性があります。このような場合、TiDB はそのような障害から自動的に回復できず、ログ書き込み操作は永続的にブロックされます。TiDB プロセスは実行されているように見えますが、要求に応答しません。この設定項目は、このような状況に対処するために設計されています。
 
ログファイル
ログ ファイルに関連するコンフィグレーション項目。
filename
- 一般ログファイルのファイル名。
 - デフォルト値: ""
 - 設定するとこのファイルにログが出力されます。
 
max-size
- ログ ファイルのサイズ制限。
 - デフォルト値: 300
 - 単位: MB
 - 最大値は4096です。
 
max-days
- ログが保持される最大日数。
 - デフォルト値: 
0 - デフォルトではログは保持されます。値を設定すると、期限切れのログは
max-days後に削除されます。 
max-backups
- 保持されるログの最大数。
 - デフォルト値: 
0 - デフォルトではすべてのログファイルが保持されます。1 
7設定すると、最大7つのログファイルが保持されます。 
compression v8.0.0 の新機能
- ログの圧縮方法。
 - デフォルト値: 
"" - 値
"gzip"オプション:"" - デフォルト値は
""で、これは圧縮なしを意味します。gzip圧縮を有効にするには、この値を"gzip"に設定します。圧縮を有効にすると、slow-query-fileやgeneral-log-fileなど、すべてのログファイルに影響します。 
安全
セキュリティに関するコンフィグレーション項目。
enable-sem
- Security拡張モード (SEM) を有効にします。
 - デフォルト値: 
false - SEM のステータスはシステム変数
tidb_enable_enhanced_securityを介して利用できます。 
ssl-ca
- PEM 形式の信頼できる CA 証明書のファイル パス。
 - デフォルト値: ""
 - このオプションと
--ssl-cert、--ssl-key同時に設定した場合、クライアントが証明書を提示すると、TiDB はこのオプションで指定された信頼された CA のリストに基づいてクライアント証明書を認証します。認証に失敗した場合、接続は切断されます。 - このオプションを設定してもクライアントが証明書を提示しない場合は、クライアント証明書の認証なしで安全な接続が継続されます。
 
ssl-cert
- PEM 形式の SSL 証明書のファイル パス。
 - デフォルト値: ""
 - このオプションと
--ssl-key同時に設定すると、TiDB はクライアントが TLS を使用して TiDB に安全に接続することを許可します (強制はしません)。 - 指定された証明書または秘密鍵が無効な場合、TiDB は通常どおり起動しますが、安全な接続を受信できません。
 
ssl-key
- PEM 形式の SSL 証明書キー、つまり
--ssl-certで指定された証明書の秘密キーのファイル パス。 - デフォルト値: ""
 - 現在、TiDB はパスワードで保護された秘密鍵の読み込みをサポートしていません。
 
cluster-ssl-ca
- TLS を使用して TiKV または PD を接続するために使用される CA ルート証明書。
 - デフォルト値: ""
 
cluster-ssl-cert
- TLS を使用して TiKV または PD を接続するために使用される SSL 証明書ファイルのパス。
 - デフォルト値: ""
 
cluster-ssl-key
- TLS を使用して TiKV または PD に接続するために使用される SSL 秘密キー ファイルのパス。
 - デフォルト値: ""
 
cluster-verify-cn
- クライアントが提示する証明書内の許容可能なX.509共通名のリスト。提示された共通名がリスト内のエントリのいずれかと完全に一致する場合にのみ、リクエストが許可されます。
 - デフォルト値: []、クライアント証明書の CN チェックが無効であることを意味します。
 
spilled-file-encryption-method
- ディスクに流出したファイルを保存するために使用する暗号化方法を決定します。
 - デフォルト値: 
"plaintext"、暗号化を無効にします。 - オプション値: 
"plaintext"と"aes128-ctr" 
auto-tls
- 起動時に TLS 証明書を自動的に生成するかどうかを決定します。
 - デフォルト値: 
false 
tls-version
- MySQL プロトコル接続の最小 TLS バージョンを設定します。
 - デフォルト値: "" は TLSv1.2 以降のバージョンを許可します。TiDB v7.6.0 より前のバージョンでは、デフォルト値は TLSv1.1 以降のバージョンを許可します。
 - オプション値: 
"TLSv1.2"と"TLSv1.3"。TiDB v8.0.0 より前では、"TLSv1.0"と"TLSv1.1"も許可されます。 
auth-token-jwksバージョン6.4.0の新機能
tidb_auth_token認証方法の JSON Web Key Sets (JWKS) のローカル ファイル パスを設定します。- デフォルト値: 
"" 
auth-token-refresh-interval v6.4.0 の新機能
tidb_auth_token認証方法の JWKS 更新間隔を設定します。- デフォルト値: 
1h 
disconnect-on-expired-password v6.5.0 の新機能
- パスワードの有効期限が切れたときに TiDB がクライアント接続を切断するかどうかを決定します。
 - デフォルト値: 
true - オプション
false:true trueに設定すると、パスワードの有効期限が切れるとクライアント接続が切断されます。3false設定すると、クライアント接続は「サンドボックスモード」に制限され、ユーザーはパスワードリセット操作のみを実行できます。
session-token-signing-cert v6.4.0 の新機能
- セッション移行のためにTiProxyによって使用される証明書ファイル パス。
 - デフォルト値: ""
 - 値が空の場合、TiProxy セッションの移行は失敗します。セッションの移行を有効にするには、すべての TiDB ノードでこの値を同じ証明書と鍵に設定する必要があります。つまり、すべての TiDB ノードで同じ証明書と鍵を保存する必要があります。
 
session-token-signing-key v6.4.0 の新機能
- セッション移行のためにTiProxyで使用されるキー ファイル パス。
 - デフォルト値: ""
 session-token-signing-certの説明を参照してください。
パフォーマンス
パフォーマンスに関連するコンフィグレーション項目。
max-procs
- TiDB で使用される CPU の数。
 - デフォルト値: 
0 - デフォルトの
0マシン上のすべてのCPUを使用することを意味します。nに設定すると、TiDBはn個のCPUを使用します。 
server-memory-quota v4.0.9 の新機能
- tidb-server インスタンスのメモリ使用量制限。
 - デフォルト値: 
0(バイト単位)。メモリ制限がないことを意味します。 
max-txn-ttl
- 単一のトランザクションがロックを保持できる最長時間。この時間を超えると、トランザクションのロックが他のトランザクションによって解除され、そのトランザクションを正常にコミットできなくなる可能性があります。
 - デフォルト値: 
3600000 - 単位: ミリ秒
 - この時間を超えてロックを保持しているトランザクションは、コミットまたはロールバックのみ可能です。コミットは成功しない可能性があります。
 "bulk"DMLモード使用して実行されるトランザクションの場合、最大 TTL はこの設定項目の制限を超えることがあります。最大値は、この設定項目と 24 時間のうち大きい方の値となります。
stmt-count-limit
- 単一の TiDB トランザクションで許可されるステートメントの最大数。
 - デフォルト値: 
5000 - トランザクションがステートメントの数が
stmt-count-limit超えた後もロールバックまたはコミットしない場合、TiDB はエラーstatement count 5001 exceeds the transaction limitation, autocommit = false返します。この設定は、再試行可能な楽観的トランザクションでのみ有効です。悲観的トランザクションを使用している場合、またはトランザクションの再試行を無効にしている場合は、トランザクション内のステートメントの数はこの設定によって制限されません。 
txn-entry-size-limit v4.0.10 および v5.0.0 の新機能
- TiDB 内の 1 行のデータのサイズ制限。
 - デフォルト値: 
6291456(バイト単位) - トランザクション内の単一のキー値レコードのサイズ制限。サイズ制限を超えると、TiDBはエラー
entry too largeを返します。この設定項目の最大値は125829120(120MB)を超えません。 - v7.6.0 以降では、システム変数
tidb_txn_entry_size_limit使用して、この構成項目の値を動的に変更できます。 - TiKVにも同様の制限があることに注意してください。1回の書き込みリクエストのデータサイズが
raft-entry-max-size(デフォルトでは8MB)を超えると、TiKVはこのリクエストの処理を拒否します。テーブルに大きなサイズの行がある場合は、両方の設定を同時に変更する必要があります。 - デフォルト値は
max_allowed_packet(MySQLプロトコルのパケットの最大サイズ)で、67108864(64 MiB)です。行がmax_allowed_packetより大きい場合、その行は切り捨てられます。 - デフォルト値
txn-total-size-limit(TiDB における単一トランザクションのサイズ制限)は 100 MiB です。3txn-entry-size-limit値を 100 MiB 以上に増やす場合は、それに応じてtxn-total-size-limit値も増やす必要があります。 
txn-total-size-limit
- TiDB における単一トランザクションのサイズ制限。
 - デフォルト値: 
104857600(バイト単位) - 単一のトランザクションにおいて、キー値レコードの合計サイズはこの値を超えることはできません。このパラメータの最大値は
1099511627776(1TB)です。 - TiDB v6.5.0以降のバージョンでは、この構成は推奨されません。トランザクションのメモリサイズはセッションのメモリ使用量に累積され、セッションメモリのしきい値を超えた時点で
tidb_mem_quota_query変数が有効になります。以前のバージョンとの互換性を保つため、以前のバージョンからTiDB v6.5.0以降にアップグレードする場合、この構成は以下のように動作します。- この設定が設定されていないか、デフォルト値( 
104857600)に設定されている場合、アップグレード後にトランザクションのメモリサイズがセッションのメモリ使用量に蓄積され、tidb_mem_quota_query変数が有効になります。 - この設定がデフォルト( 
104857600)に設定されていない場合でも、この設定は有効であり、単一トランザクションのサイズを制御する動作はアップグレード前後で変更されません。つまり、トランザクションのメモリサイズはtidb_mem_quota_query変数によって制御されません。 
 - この設定が設定されていないか、デフォルト値( 
 - TiDB が
tidb_dml_type"bulk"モードでトランザクションを実行する場合、トランザクション サイズは TiDB 構成項目txn-total-size-limitによって制限されません。 
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ステートメントが出現したときにサーバーは実行を拒否します。 
注記:
クラスターを作成する際は、
cross-joinfalseに設定しないでください。そうしないと、クラスターの起動に失敗します。
stats-lease
- 統計の再ロード、テーブル行数の更新、自動分析の実行が必要かどうかの確認、フィードバックを使用した統計の更新、列の統計のロードの時間間隔。
 - デフォルト値: 
3s- TiDB は
stats-lease時間間隔で更新の統計をチェックし、更新が存在する場合はそれをメモリに更新します。 - TiDB は
20 * stats-lease時間間隔で、DML によって生成された行の合計数と変更された行の数をシステム テーブルに更新します。 - TiDB は
stats-lease間隔で、自動的に分析する必要があるテーブルとインデックスをチェックします。 - TiDB は
stats-lease間隔で、メモリにロードする必要がある列統計をチェックします。 200 * stats-lease間隔で、TiDB はメモリにキャッシュされたフィードバックをシステム テーブルに書き込みます。- TiDB は
5 * stats-lease間隔でシステム テーブル内のフィードバックを読み取り、メモリにキャッシュされた統計を更新します。 
 - TiDB は
 stats-lease0 に設定すると、TiDB はシステムテーブル内のフィードバックを定期的に読み取り、メモリにキャッシュされた統計情報を 3 秒ごとに更新します。ただし、TiDB は以下の統計関連システムテーブルを自動的に変更しなくなります。mysql.stats_meta: TiDB は、トランザクションによって変更されたテーブル行の数を自動的に記録しなくなり、このシステム テーブルに更新します。mysql.stats_histograms/mysql.stats_bucketsおよびmysql.stats_top_n: TiDB は統計を自動的に分析し、積極的に更新しなくなりました。mysql.stats_feedback: TiDB は、クエリされたデータによって返される統計の一部に応じて、テーブルとインデックスの統計を更新しなくなりました。
pseudo-estimate-ratio
- テーブル内の(変更された行数)/(合計行数)の比率。この値を超えると、システムは統計の有効期限が切れたとみなし、疑似統計を使用します。
 - デフォルト値: 
0.8 - 最小値は
0、最大値は1です。 
force-priority
- すべてのステートメントの優先順位を設定します。
 - デフォルト値: 
NO_PRIORITY - 値のオプション:デフォルト値
NO_PRIORITY、ステートメントの優先度を強制的に変更しないことを意味します。その他のオプションは、昇順でLOW_PRIORITY、DELAYED、HIGH_PRIORITYです。 - v6.1.0以降、すべてのステートメントの優先度はTiDB設定項目
instance.tidb_force_priorityまたはシステム変数tidb_force_priorityによって決定されます。5force-priority引き続き有効です。ただし、force-priorityとinstance.tidb_force_priority同時に設定されている場合、後者が有効になります。 
注記:
TiDB v6.6.0以降、 リソース管理サポートします。この機能を使用すると、異なるリソースグループで異なる優先度のSQL文を実行できます。これらのリソースグループに適切なクォータと優先度を設定することで、優先度の異なるSQL文のスケジュールをより適切に制御できます。リソース制御を有効にすると、文の優先度は適用されなくなります。異なるSQL文のリソース使用量を管理するには、 リソース管理使用することをお勧めします。
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なります。 
enable-stats-cache-mem-quotaバージョン6.1.0の新機能
- 統計キャッシュのメモリクォータを有効にするかどうかを制御します。
 - デフォルト値: 
true 
stats-load-concurrency v5.4.0 の新機能
- TiDB 同期ロード統計機能が同時に処理できる列の最大数。
 - デフォルト値: 
0。v8.2.0 より前では、デフォルト値は5です。 - 現在、有効な値の範囲は
[0, 128]です。値0自動モードを意味し、サーバーの設定に基づいて同時実行性を自動的に調整します。v8.2.0より前では、最小値は1です。 
stats-load-queue-size v5.4.0 の新機能
- TiDB 同期ロード統計機能がキャッシュできる列要求の最大数。
 - デフォルト値: 
1000 - 現在、有効な値の範囲は
[1, 100000]です。 
concurrently-init-stats v8.1.0 および v7.5.2 の新機能
- TiDBの起動時に統計を同時に初期化するかどうかを制御します。この設定項目は、 
lite-init-statsfalseに設定されている場合にのみ有効になります。 - デフォルト値: v8.2.0 より前のバージョンの場合は
false、v8.2.0 以降のバージョンの場合はtrue。 
lite-init-stats v7.1.0 の新機能
- TiDB の起動時に軽量統計初期化を使用するかどうかを制御します。
 - デフォルト値: v7.2.0 より前のバージョンの場合は
false、v7.2.0 以降のバージョンの場合はtrue。 lite-init-statsの値がtrue場合、統計の初期化では、インデックスと列のヒストグラム、TopN、Count-Min Sketch はメモリにロードされません。lite-init-statsの値がfalse場合、統計の初期化では、インデックスのヒストグラム、TopN、Count-Min Sketch はメモリにロードされますが、主キーと列のヒストグラム、TopN、Count-Min Sketch はメモリにロードされません。 オプティマイザが特定の主キーまたは列のヒストグラム、TopN、Count-Min Sketch を必要とする場合、必要な統計は同期的または非同期的にメモリにロードされます (tidb_stats_load_sync_waitで制御)。lite-init-stats~trueに設定すると、統計情報の初期化が高速化され、不要な統計情報のロードが回避されるため、TiDBのメモリ使用量が削減されます。詳細については負荷統計参照してください。
force-init-stats v6.5.7 および v7.1.0 の新機能
- TiDB の起動中にサービスを提供する前に、統計の初期化が完了するまで待機するかどうかを制御します。
 - デフォルト値: v7.2.0 より前のバージョンの場合は
false、v7.2.0 以降のバージョンの場合はtrue。 force-init-statsの値がtrue場合、TiDB は起動時にサービスを提供する前に、統計の初期化が完了するまで待機する必要があります。テーブルとパーティションの数が多く、lite-init-statsの値がfalseの場合、force-init-statsからtrueに設定すると、TiDB がサービスを開始するまでの時間が長くなる可能性があることに注意してください。force-init-statsの値がfalse場合、統計の初期化が完了する前に TiDB はサービスを提供できますが、オプティマイザーは疑似統計を使用して決定を下すため、実行プランが最適ではない可能性があります。
オープントレーシング
OpenTracing に関連するコンフィグレーション項目。
enable
- OpenTracing を有効にすると、一部の TiDB コンポーネントの呼び出しオーバーヘッドをトレースできます。OpenTracing を有効にすると、パフォーマンスが低下することに注意してください。
 - デフォルト値: 
false 
rpc-metrics
- RPC メトリックを有効にします。
 - デフォルト値: 
false 
opentracing.sampler
opentracing.sampler に関連するコンフィグレーション項目。
type
- OpenTracingサンプラーのタイプを指定します。文字列値は大文字と小文字を区別しません。
 - デフォルト値: 
"const" "remote""ratelimiting""probabilistic":"const"
param
- OpenTracing サンプラーのパラメータ。
constタイプの場合、値は0または1になり、constサンプラーを有効にするかどうかを示します。probabilisticタイプの場合、パラメータはサンプリング確率を指定します。これは0から1の浮動小数点数値になります。ratelimitingタイプの場合、パラメータは 1 秒あたりにサンプリングされるスパンの数を指定します。remoteタイプの場合、パラメータはサンプリング確率を指定します。これは0から1の浮動小数点数値になります。
 - デフォルト値: 
1.0 
sampling-server-url
- jaeger-agent サンプリングサーバーの HTTP URL。
 - デフォルト値: 
"" 
max-operations
- サンプラーがトレースできる操作の最大数。操作がトレースされない場合、デフォルトの確率サンプラーが使用されます。
 - デフォルト値: 
0 
sampling-refresh-interval
- jaeger-agent サンプリング ポリシーのポーリング頻度を制御します。
 - デフォルト値: 
0 
オープントレーシングレポーター
opentracing.reporter に関連するコンフィグレーション項目。
queue-size
- レポーターがメモリ内のスパンを記録するキューのサイズ。
 - デフォルト値: 
0 
buffer-flush-interval
- レポーターがメモリ内のスパンをstorageにフラッシュする間隔。
 - デフォルト値: 
0 
log-spans
- 送信されたすべてのスパンのログを印刷するかどうかを決定します。
 - デフォルト値: 
false 
local-agent-host-port
- レポーターが jaeger-agent に span を送信するアドレス。
 - デフォルト値: 
"" 
pdクライアント
pd-server-timeout
- TiDB が PD クライアント経由で PD ノードに要求を送信する際のタイムアウト。
 - デフォルト値: 3
 - 単位: 秒
 
tikvクライアント
grpc-connection-count
- 各 TiKV で確立される接続の最大数。
 - デフォルト値: 
4 
grpc-keepalive-time
- TiDBノードとTiKVノード間のRPC接続の
keepalive時間間隔。指定された時間間隔内にネットワークパケットがない場合、gRPCクライアントはTiKVに対してpingコマンドを実行し、TiKVが稼働しているかどうかを確認します。 - デフォルト: 
10 - 最小値: 
1 - 単位: 秒
 
grpc-keepalive-timeout
- TiDB ノードと TiKV ノード間の RPC 
keepaliveチェックのタイムアウト。 - デフォルト値: 
3 - 最小値: 
0.05 - 単位: 秒
 
grpc-compression-type
- TiDBノードからTiKVノードへのデータ転送に使用する圧縮タイプを指定します。デフォルト値は
"none"で、圧縮なしを意味します。gzip圧縮を有効にするには、この値を"gzip"に設定してください。 - デフォルト値: 
"none" - 値
"gzip"オプション:"none" 
注記:
TiKV ノードから TiDB ノードに返される応答メッセージの圧縮アルゴリズムは、TiKV 構成項目
grpc-compression-typeによって制御されます。
commit-timeout
- トランザクションコミットを実行する際の最大タイムアウト。
 - デフォルト値: 
41s - この値は、 Raft選択タイムアウトの 2 倍よりも大きく設定する必要があります。
 
batch-policy v8.3.0 の新機能
- TiDBからTiKVへのリクエストのバッチ処理戦略を制御します。TiDBは、TiKVにリクエストを送信する際、常に現在の待機キューにあるリクエストを
BatchCommandsRequestにカプセル化し、パケットとしてTiKVに送信します。これが基本的なバッチ処理戦略です。TiKVの負荷スループットが高い場合、TiDBはbatch-policy値に基づいて、基本バッチ処理後に追加の待機期間を設定するかどうかを決定します。この追加のバッチ処理により、より多くのリクエストを1つのBatchCommandsRequestにカプセル化されたできます。 - デフォルト値: 
"standard" - 値のオプション:
"basic": 動作は v8.3.0 より前のバージョンと一致しており、tikv-client.max-batch-wait-time0 より大きく、TiKV の負荷がtikv-client.overload-threshold値を超える場合にのみ、TiDB は追加のバッチ処理を実行します。"standard": TiDB は、最近のリクエストの到着時間間隔に基づいてリクエストを動的にバッチ処理します。高スループットのシナリオに適しています。"positive": TiDBは常に追加のバッチ処理を実行します。これは、高スループットのテストシナリオで最適なパフォーマンスを実現するのに適しています。ただし、低負荷のシナリオでは、この戦略により不要なバッチ処理の待機時間が発生し、パフォーマンスが低下する可能性があります。"custom{...}": バッチ処理戦略パラメータのカスタマイズを許可します。このオプションはTiDBの内部テスト用であり、一般的な使用には推奨されません。
 
max-batch-size
- バッチで送信されるRPCパケットの最大数。値が
0以外の場合、TiKVへのリクエスト送信にAPIBatchCommandsが使用され、同時実行数が多い場合にRPCレイテンシーが短縮されます。この値は変更しないことをお勧めします。 - デフォルト値: 
128 
max-batch-wait-time
- データパケットを大きなパケットに一括カプセル化し、TiKVノードに送信するまで、 
max-batch-wait-timeを待機します。これは、tikv-client.max-batch-sizeの値が0より大きい場合にのみ有効です。この値を変更しないことを推奨します。 - デフォルト値: 
0 - 単位: ナノ秒
 
batch-wait-size
- TiKVに一括送信されるパケットの最大数。この値を変更しないことを推奨します。
 - デフォルト値: 
8 - 値が
0場合、この機能は無効になります。 
overload-threshold
- TiKV負荷の閾値。TiKV負荷がこの閾値を超えると、TiKVの負荷を軽減するために、 
batchパケットがさらに収集されます。この設定項目は、tikv-client.max-batch-sizeとtikv-client.max-batch-wait-time両方が0より大きい値に設定されている場合にのみ有効になります。この値を変更しないことを推奨します。 - デフォルト値: 
200 
copr-req-timeoutバージョン7.5.0の新機能
- 単一のコプロセッサー要求のタイムアウト。
 - デフォルト値: 
60 - 単位: 秒
 
enable-replica-selector-v2 v8.0.0 の新機能
- RPC 要求を TiKV に送信するときに、リージョンレプリカ セレクターの新しいバージョンを使用するかどうか。
 - デフォルト値: 
true 
tikv-client.copr-cache v4.0.0 の新機能
このセクションでは、 コプロセッサーキャッシュ機能に関連する設定項目について説明します。
capacity-mb
- キャッシュされたデータの合計サイズ。キャッシュスペースがいっぱいになると、古いキャッシュエントリは削除されます。値が
0.0の場合、コプロセッサーキャッシュ機能は無効になります。 - デフォルト値: 
1000.0 - 単位: MB
 - タイプ: フロート
 
トランザクションローカルラッチ
トランザクションラッチに関連するコンフィグレーション項目です。これらの設定項目は将来廃止される可能性があります。使用は推奨されません。
enabled
- トランザクションのメモリロックを有効にするかどうかを決定します。
 - デフォルト値: 
false 
capacity
- ハッシュに対応するスロット数は、2の指数倍に自動的に調整されます。各スロットは32バイトのメモリを占有します。この値が小さすぎると、比較的広い範囲のデータ書き込み(データのインポートなど)において、実行速度が低下し、パフォーマンスが低下する可能性があります。
 - デフォルト値: 
2048000 
状態
TiDB サービスのステータスに関連するコンフィグレーション。
report-status
- HTTP API サービスを有効または無効にします。
 - デフォルト値: 
true 
record-db-qps
- データベース関連の QPS メトリックを Prometheus に送信するかどうかを決定します。
 - デフォルト値: 
false 
record-db-label
- データベース関連の QPS メトリックを Prometheus に送信するかどうかを決定します。
 - 期間やステートメントなど、 
record-db-qpsより多くのメトリック タイプをサポートします。 - デフォルト値: 
false 
pessimistic-txn
悲観的トランザクションの使用については、 TiDB 悲観的トランザクションモードを参照してください。
max-retry-count
- 悲観的トランザクションにおける各ステートメントの最大再試行回数。再試行回数がこの制限を超えると、エラーが発生します。
 - デフォルト値: 
256 
deadlock-history-capacity
- 単一のTiDBサーバーの
INFORMATION_SCHEMA.DEADLOCKSテーブルに記録できるデッドロックイベントの最大数。このテーブルが満杯の状態で追加のデッドロックイベントが発生した場合、テーブル内の最も古いレコードが削除され、最新のエラーのためのスペースが確保されます。 - デフォルト値: 
10 - 最小値: 
0 - 最大値: 
10000 
deadlock-history-collect-retryable
INFORMATION_SCHEMA.DEADLOCKSテーブルが再試行可能なデッドロックエラーの情報を収集するかどうかを制御します。再試行可能なデッドロックエラーの説明については、 再試行可能なデッドロックエラー参照してください。- デフォルト値: 
false 
pessimistic-auto-commitv6.0.0 の新機能
- 悲観的・トランザクション・モードがグローバルに有効になっている場合( 
tidb_txn_mode='pessimistic')、自動コミット・トランザクションが使用するトランザクション・モードを決定します。デフォルトでは、悲観的・トランザクション・モードがグローバルに有効になっている場合でも、自動コミット・トランザクションは楽観的・トランザクション・モードを使用します。3pessimistic-auto-commit有効にすると(trueに設定)、自動コミット・トランザクションも悲観的・モードを使用します。これは、明示的にコミットされた他の悲観的・トランザクションと一貫性があります。 - 競合が発生するシナリオでは、この構成を有効にすると、TiDB は自動コミット トランザクションをグローバル ロック待機管理に組み込み、デッドロックを回避し、デッドロックの原因となる競合によってもたらされるレイテンシーの急増を軽減します。
 - 競合が発生しないシナリオにおいて、自動コミットトランザクションの数が多く(具体的な数は実際のシナリオによって異なります。例えば、自動コミットトランザクションの数がアプリケーション全体の半分以上を占める場合など)、かつ単一のトランザクションで大量のデータを処理する場合、この構成を有効にするとパフォーマンスが低下します。例えば、auto-commit 
INSERT INTO SELECTステートメントなどです。 - セッション レベルのシステム変数
tidb_dml_type"bulk"に設定すると、セッションでのこの構成の効果はfalseに設定するのと同じになります。 - デフォルト値: 
false 
constraint-check-in-place-pessimisticv6.4.0 の新機能
- システム変数
tidb_constraint_check_in_place_pessimisticのデフォルト値を制御します。 - デフォルト値: 
true 
分離読み取り
読み取り分離に関連するコンフィグレーション項目。
engines
- TiDB がどのエンジンからデータを読み取ることを許可するかを制御します。
 - デフォルト値: ["tikv", "tiflash", "tidb"]。エンジンがオプティマイザーによって自動的に選択されることを示します。
 - 値のオプション: 「tikv」、「tiflash」、「tidb」の任意の組み合わせ。例: ["tikv", "tidb"] または ["tiflash", "tidb"]
 
実例
tidb_enable_collect_execution_info
- この構成は、スロー クエリ ログに各演算子の実行情報を記録するかどうか、およびインデックスの使用統計を記録するかどうかを制御します。
 - デフォルト値: 
true - v6.1.0 より前では、この構成は
enable-collect-execution-infoで設定されます。 
tidb_enable_slow_log
- この構成は、スロー ログ機能を有効にするかどうかを制御するために使用されます。
 - デフォルト値: 
true - 値のオプション: 
trueまたはfalse - v6.1.0 より前では、この構成は
enable-slow-logで設定されます。 
tidb_slow_log_threshold
- スローログに消費された時間のしきい値を出力します。
 - デフォルト値: 
300 - 範囲: 
[-1, 9223372036854775807] - 単位: ミリ秒
 - クエリの消費時間がこの値を超える場合、そのクエリはスロークエリとみなされ、スロークエリログにログが出力されます。なお、出力レベル
log.levelが"debug"の場合、このパラメータの設定に関わらず、すべてのクエリがスロークエリログに記録されます。 - v6.1.0 より前では、この構成は
slow-thresholdで設定されます。 
in-mem-slow-query-topn-num v7.3.0 の新機能
- 構成により、メモリにキャッシュされる最も遅いクエリの数を制御します。
 - デフォルト値: 30
 
in-mem-slow-query-recent-num v7.3.0 の新機能
- 構成は、メモリにキャッシュされる最近使用された低速クエリの数を制御します。
 - デフォルト値: 500
 
tidb_expensive_query_time_threshold
- この設定は、高負荷クエリログを出力するかどうかを決定するしきい値を設定するために使用されます。高負荷クエリログと低負荷クエリログの違いは次のとおりです。
- ステートメントの実行後にスロー ログが出力されます。
 - コストのかかるクエリ ログには、実行時間がしきい値を超えている実行中のステートメントとその関連情報が出力されます。
 
 - デフォルト値: 
60 - 範囲: 
[10, 2147483647] - 単位: 秒
 - v5.4.0 より前では、この構成は
expensive-thresholdで設定されます。 
tidb_record_plan_in_slow_log
- この構成は、スロー ログにスロー クエリの実行プランを含めるかどうかを制御するために使用されます。
 - デフォルト値: 
1 - 値のオプション: 
1(有効、デフォルト) または0(無効)。 - この設定の値はシステム変数
tidb_record_plan_in_slow_logの値を初期化します - v6.1.0 より前では、この構成は
record-plan-in-slow-logで設定されます。 
tidb_force_priority
- この構成は、TiDBサーバーで実行されるステートメントのデフォルトの優先順位を変更するために使用されます。
 - デフォルト値: 
NO_PRIORITY - デフォルト値
NO_PRIORITY、ステートメントの優先度が強制的に変更されないことを意味します。その他のオプションは、昇順でLOW_PRIORITY、DELAYED、HIGH_PRIORITYです。 - v6.1.0 より前では、この構成は
force-priorityで設定されます。 
注記:
TiDB v6.6.0以降、 リソース管理サポートします。この機能を使用すると、異なるリソースグループで異なる優先度のSQL文を実行できます。これらのリソースグループに適切なクォータと優先度を設定することで、優先度の異なるSQL文のスケジュールをより適切に制御できます。リソース制御を有効にすると、文の優先度は適用されなくなります。異なるSQL文のリソース使用量を管理するには、 リソース管理使用することをお勧めします。
max_connections
- 単一のTiDBインスタンスに許可される最大接続数。リソース制御に使用できます。
 - デフォルト値: 
0 - 範囲: 
[0, 100000] - デフォルト値
0無制限を意味します。この変数の値が0より大きく、接続数がその値に達すると、TiDBサーバーはクライアントからの新規接続を拒否します。 - この設定の値はシステム変数
max_connectionsの値を初期化します - v6.2.0 より前では、この構成は
max-server-connectionsで設定されます。 
tidb_enable_ddl
- この構成は、対応する TiDB インスタンスが DDL 所有者になれるかどうかを制御します。
 - デフォルト値: 
true - 可能
ON値:OFF - この設定の値はシステム変数
tidb_enable_ddlの値を初期化します。 - v6.3.0 より前では、この構成は
run-ddlで設定されます。 
tidb_enable_stats_owner v8.4.0 の新機能
- この構成は、対応する TiDB インスタンスが自動統計更新タスクを実行できるかどうかを制御します。
 - デフォルト値: 
true - 可能
false値:true - この構成の値によって、システム変数
tidb_enable_stats_ownerの値が初期化されます。 
tidb_stmt_summary_enable_persistent v6.6.0 の新機能
- ステートメント サマリーの永続性を有効にするかどうかを制御します。
 - デフォルト値: 
false - 詳細については永続ステートメントの概要参照してください。
 
tidb_stmt_summary_filename v6.6.0 の新機能
- ステートメント サマリーの永続性が有効な場合、この構成では永続データが書き込まれるファイルを指定します。
 - デフォルト値: 
tidb-statements.log 
tidb_stmt_summary_file_max_days v6.6.0 の新機能
- ステートメント サマリーの永続性が有効な場合、この構成では永続データ ファイルを保持する最大日数を指定します。
 - デフォルト値: 
3 - 単位: 日
 - データ保持要件とディスク領域の使用量に基づいて値を調整できます。
 
tidb_stmt_summary_file_max_size v6.6.0 の新機能
- ステートメント サマリーの永続性が有効な場合、この構成は永続データ ファイルの最大サイズを指定します。
 - デフォルト値: 
64 - 単位: MiB
 - データ保持要件とディスク領域の使用量に基づいて値を調整できます。
 
tidb_stmt_summary_file_max_backups v6.6.0 の新機能
- ステートメント サマリーの永続化が有効になっている場合、この構成では永続化できるデータ ファイルの最大数を指定します。1 
0ファイル数に制限がないことを意味します。 - デフォルト値: 
0 - データ保持要件とディスク領域の使用量に基づいて値を調整できます。
 
プロキシプロトコル
PROXY プロトコルに関連するコンフィグレーション項目。
networks
- PROXYプロトコル使用してTiDBに接続できるプロキシサーバーのIPアドレスのリスト
 - デフォルト値: ""
 - 通常、リバースプロキシを経由してTiDBにアクセスする場合、TiDBはリバースプロキシサーバーのIPアドレスをクライアントのIPアドレスとして取得します。PROXYプロトコルを有効にすると、このプロトコルをサポートするリバースプロキシ(HAProxyなど)は、実際のクライアントIPアドレスをTiDBに渡すことができます。
 - このパラメータを設定すると、TiDBは設定された送信元IPアドレスからのPROXYプロトコルによるTiDBへの接続を許可します。PROXY以外のプロトコルが使用されている場合、この接続は拒否されます。このパラメータを空のままにすると、どのIPアドレスもPROXYプロトコルを使用してTiDBに接続できなくなります。値は、IPアドレス(192.168.1.50)またはCIDR(192.168.1.0/24)で、区切り文字は
,。3*任意のIPアドレスを意味します。 
fallbackable v6.5.1 の新機能
- PROXYプロトコルフォールバックモードを有効にするかどうかを制御します。この設定項目を
trueに設定すると、TiDBはproxy-protocol.networksに属するクライアントからの、PROXYプロトコル仕様を使用せずに、またはPROXYプロトコルヘッダーを送信せずにTiDBへの接続を受け入れることができます。デフォルトでは、TiDBはproxy-protocol.networksに属し、PROXYプロトコルヘッダーを送信するクライアント接続のみを受け入れます。 - デフォルト値: 
false 
実験的
v3.1.0 で導入されたexperimentalセクションでは、TiDB の実験的機能に関連する構成について説明します。
allow-expression-indexバージョン4.0.0の新機能
- 式インデックスを作成できるかどうかを制御します。TiDB v5.2.0以降、式内の関数が安全な場合、この設定を有効にしなくても、その関数に基づいて直接式インデックスを作成できます。他の関数に基づいて式インデックスを作成したい場合は、この設定を有効にできますが、正確性に問題が生じる可能性があります。1変数
tidb_allow_function_for_expression_indexクエリすることで、式の作成に直接使用しても安全な関数を取得できます。 - デフォルト値: 
false