TiDBコンフィグレーションファイル
TiDB 構成ファイルは、コマンドライン パラメーターよりも多くのオプションをサポートしています。デフォルトの構成ファイルconfig.toml.exampleをダウンロードし、その名前をconfig.tomlに変更できます。本書ではコマンドラインオプションに関係のないオプションのみを説明します。
ヒント:
設定項目の値を調整する必要がある場合は、 設定を変更するを参照してください。
split-table
- 各テーブルごとに個別のリージョンを作成するかどうかを決定します。
- デフォルト値:
true - 多数のテーブル(例えば、10万個以上のテーブル)を作成する必要がある場合は
falseに設定することをお勧めします。
tidb-max-reuse-chunk v6.4.0の新機能
- チャンク割り当てにおけるキャッシュ可能なチャンクオブジェクトの最大数を制御します。この設定項目に大きすぎる値を設定すると、メモリ不足(OOM)のリスクが高まる可能性があります。
- デフォルト値:
64 - 最小値:
0 - 最大値:
2147483647
tidb-max-reuse-column v6.4.0で追加
- チャンク割り当てにおけるキャッシュ可能な列オブジェクトの最大数を制御します。この設定項目に大きすぎる値を設定すると、メモリ不足(OOM)のリスクが高まる可能性があります。
- デフォルト値:
256 - 最小値:
0 - 最大値:
2147483647
token-limit
- 同時にリクエストを実行できるセッションの数。
- 型: 整数
- デフォルト値:
1000 - 最小値:
1 - 最大値:
1048576
temp-dir v6.3.0 で追加されました。
- TiDBが一時データを保存するために使用されるファイルシステム上の場所。機能がTiDBノード内でローカルストレージを必要とする場合、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で指定されたメモリクォータを超えた場合に、一部のオペレーターに対して一時ストレージを有効にするかどうかを制御します。 - デフォルト値:
true
tmp-storage-path
- 単一の SQL ステートメントがシステム変数
tidb_mem_quota_queryで指定されたメモリクォータを超えた場合に、一部のオペレーターの一時的なストレージパスを指定します。 - デフォルト値:
<temporary directory of OS>/<OS user ID>_tidb/MC4wLjAuMDo0MDAwLzAuMC4wLjA6MTAwODA=/tmp-storage。MC4wLjAuMDo0MDAwLzAuMC4wLjA6MTAwODA=はBase64の<host>:<port>/<statusHost>:<statusPort>エンコード結果です。 - この設定は、システム変数
tidb_enable_tmp_storage_on_oomがONの場合にのみ有効になります。
tmp-storage-quota
tmp-storage-pathのストレージのクォータを指定します。単位はバイトです。- 単一の SQL ステートメントが一時ディスクを使用し、TiDBサーバーの一時ディスクの合計ボリュームがこの構成値を超えると、現在の SQL 操作はキャンセルされ、
Out of Global Storage Quota!エラーが返されます。 - この設定の値が
0より小さい場合、上記のチェックと制限は適用されません。 - デフォルト値:
-1 tmp-storage-pathの残りの使用可能なストレージがtmp-storage-quotaで定義された値よりも少ない場合、TiDBサーバーは起動時にエラーを報告して終了します。
lease
- DDLリース契約のタイムアウト。
- デフォルト値:
45s - 単位:秒
compatible-kill-query
KILLステートメントを MySQL 互換に設定するかどうかを決定します。- デフォルト値:
false compatible-kill-query、enable-global-killfalseに設定されている場合にのみ有効になります。enable-global-killがfalseの場合、compatible-kill-queryクエリを強制終了する際にTIDBキーワードを追加する必要があるかどうかを制御します。compatible-kill-queryがfalseの場合、TiDB でのKILL xxxの動作は MySQL とは異なります。TiDB でクエリを強制終了するには、TIDBのようにKILL TIDB xxxキーワードを追加する必要があります。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 - バージョン6.1.0以降、
utf8mb4文字チェックを有効にするかどうかは、TiDB構成項目instance.tidb_check_mb4_value_in_utf8またはシステム変数tidb_check_mb4_value_in_utf8によって決定されます。check-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ノードは
server-versionの値を使用して現在のTiDBバージョンを確認します。そのため、予期しない動作を避けるため、TiDBクラスタをアップグレードする前に、server-versionの値を空にするか、現在のTiDBクラスタの実際のバージョンに設定する必要があります。
repair-mode
- 信頼できない修復モードを有効にするかどうかを決定します。
repair-modeがtrueに設定されている場合、repair-table-list内の不良テーブルはロードできません。 - デフォルト値:
false repair構文はデフォルトではサポートされていません。つまり、TiDB起動時にすべてのテーブルがロードされます。
repair-table-list
repair-table-list、repair-modetrueに設定されている場合にのみ有効です。repair-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 で許可される同時クライアント接続の最大数を設定するには、TiDB 構成項目
instance.max_connectionsまたはシステム変数max_connectionsが使用されます。max-server-connections引き続き有効です。ただし、max-server-connectionsとinstance.max_connectionsが同時に設定されている場合、後者が有効になります。
max-index-length
- 新しく作成されるインデックスの最大許容長を設定します。
- デフォルト値:
3072 - 単位:バイト
- 範囲:
[3072, 3072*4] - 互換性:
- MySQL: インデックスの最大長は3072バイトに固定されています。
- TiDBの以前のバージョン:
- バージョン3.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の新機能
- 単一テーブル内の列数の上限を設定します。
- デフォルト値:
1017 - 現在、有効な値の範囲は
[1017, 4096]です。
index-limit v5.0で追加
- 単一テーブル内のインデックス数の上限を設定します。
- デフォルト値:
64 - 現在、有効な値の範囲は
[64, 512]です。
enable-telemetry v4.0.2の新機能
- TiDBインスタンスでテレメトリ収集を有効にするかどうかを制御します。
- デフォルト値:
false
deprecate-integer-display-length
- この構成項目が
trueに設定されている場合、整数型の表示幅は非推奨になります。 - デフォルト値:
true。v8.5.0 より前のバージョンでは、デフォルト値はfalseです。
enable-tcp4-only v5.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は
COM_PINGコマンドに対してもエラーを返します。
注記:
TiDBがサーバーをシャットダウンするまでの待機時間は、以下のパラメータによっても影響を受けます。
SystemD を使用するプラットフォームの場合、デフォルトの停止タイムアウトは 90 秒です。より長いタイムアウトが必要な場合は、
TimeoutStopSec=を設定できます。TiUP クラスタコンポーネントを使用する場合、デフォルトの
--wait-timeoutは120秒です。Kubernetesを使用する場合、デフォルトの
terminationGracePeriodSecondsは30秒です。
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にtrueされている場合、MySQLコマンドラインのControl+Cを使用してenable-32bits-connection-idできます。詳細については、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 v4.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ラベルは、サーバーが配置されているゾーンを指定するために特別に使用されます。zoneがnull以外の値に設定されている場合、対応する値はtxn-scoreやFollower readなどの機能によって自動的に使用されます。groupラベルは、TiDB Operatorにおいて特別な用途があります。TiDB TiDB Operatorを使用してデプロイされたクラスタでは、groupラベルを手動で指定することは推奨されません。
ログ
ログに関連するコンフィグレーション項目。
level
- ログ出力レベルを指定します。
- 値のオプション:
debug、info、warn、error、およびfatal。 - デフォルト値:
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に設定してください。 - バージョン6.1.0以降、スロークエリログを有効にするかどうかは、TiDB構成アイテム
instance.tidb_enable_slow_logまたはシステム変数tidb_enable_slow_logによって決定されます。enable-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で指定されます。slow-threshold引き続き有効です。ただし、slow-thresholdとinstance.tidb_slow_log_thresholdが同時に設定されている場合、後者が有効になります。
record-plan-in-slow-log
- 実行計画をスローログに記録するかどうかを決定します。
- デフォルト値:
1 - バージョン 6.1.0 以降、実行プランをスロー ログに記録するかどうかは、TiDB 設定項目の
instance.tidb_record_plan_in_slow_logまたはシステム変数tidb_record_plan_in_slow_logによって決定されます。record-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 - デフォルトでは、すべてのログファイルが保持されます。
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
- 信頼済みCA証明書(PEM形式)のファイルパス。
- デフォルト値: ""
- このオプションと
--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
- TiKVまたはPDをTLSで接続するために使用されるCAルート証明書。
- デフォルト値: ""
cluster-ssl-cert
- TiKVまたはPDをTLSで接続するために使用されるSSL証明書ファイルのパス。
- デフォルト値: ""
cluster-ssl-key
- TiKVまたはPDをTLSに接続するために使用される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 v6.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 - オプション値:
true、false trueに設定すると、パスワードの有効期限が切れたときにクライアント接続が切断されます。falseに設定すると、クライアント接続は「サンドボックスモード」に制限され、ユーザーはパスワードリセット操作のみを実行できます。
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トランザクション1回で許可されるステートメントの最大数。
- デフォルト値:
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における単一行データのサイズ制限。
- デフォルト値:
6291456(バイト単位) - トランザクション内の単一のキー値レコードのサイズ制限。サイズ制限を超えると、TiDB は
entry too largeエラーを返します。この構成項目の最大値は125829120(120 MB) を超えません。 - バージョン7.6.0以降では、システム変数
tidb_txn_entry_size_limitを使用して、この設定項目の値を動的に変更できます。 - TiKVにも同様の制限があることに注意してください。単一の書き込みリクエストのデータサイズが、デフォルトで8MBに設定されている
raft-entry-max-size超えると、TiKVはこのリクエストの処理を拒否します。テーブルに大きな行がある場合は、両方の設定を同時に変更する必要があります。 max_allowed_packet(MySQLプロトコルのパケットの最大サイズ)のデフォルト値は67108864(64 MiB)です。行がmax_allowed_packetより大きい場合、行は切り捨てられます。txn-total-size-limit(TiDBにおける単一トランザクションのサイズ制限)のデフォルト値は100 MiBです。txn-entry-size-limitの値を100 MiB以上に増やす場合は、txn-total-size-limitの値もそれに合わせて増やす必要があります。
txn-total-size-limit
- TiDBにおける単一トランザクションのサイズ制限。
- デフォルト値:
104857600(バイト単位) - 単一のトランザクションにおいて、キーと値のレコードの合計サイズはこの値を超えることはできません。このパラメータの最大値は
1099511627776(1 TB) です。 - 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 は、デフォルトでは、両方のテーブルの条件 (
WHEREフィールド) なしでJOINステートメントを実行することをサポートしています。値をfalseに設定すると、そのようなJOINステートメントが現れたときにサーバーは実行を拒否します。
注記:
クラスターを作成する際は、
cross-joinを false に設定しないでください。設定してしまうと、クラスターの起動に失敗します。
stats-lease
- 統計情報の再読み込み、テーブル行数の更新、自動分析の実行が必要かどうかの確認、フィードバックを使用した統計情報の更新、および列の統計情報の読み込みを行う時間間隔。
- デフォルト値:
3sstats-lease間隔で、TiDB は統計情報の更新をチェックし、更新が存在する場合はそれをメモリに更新します。20 * stats-lease間隔で、TiDB は DML によって生成された行の総数と変更された行の数をシステム テーブルに更新します。stats-leaseの間隔で、TiDB は自動分析が必要なテーブルとインデックスをチェックします。stats-leaseの間隔で、TiDB はメモリにロードする必要のある列統計をチェックします。200 * stats-leaseの間隔で、TiDB はメモリにキャッシュされたフィードバックをシステム テーブルに書き込みます。5 * stats-leaseの間隔で、TiDB はシステム テーブル内のフィードバックを読み取り、メモリにキャッシュされた統計情報を更新します。
stats-leaseを 0s に設定すると、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。 - バージョン6.1.0以降、すべてのステートメントの優先順位は、TiDB構成アイテム
instance.tidb_force_priorityまたはシステム変数tidb_force_priorityによって決定されます。force-priority引き続き有効です。ただし、force-priorityとinstance.tidb_force_priorityが同時に設定されている場合、後者が有効になります。
注記:
バージョン6.6.0以降、TiDBはリソース制御サポートしています。この機能を使用すると、異なるリソースグループで異なる優先度の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 v6.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-statstrueに設定すると、lite-init-statsがサービスの提供を開始するまでの時間が長くなる可能性があることに注意してください。force-init-statsの値がfalseの場合、統計情報の初期化が完了する前に TiDB はサービスを提供できますが、オプティマイザは擬似統計情報を使用して決定を行うため、最適ではない実行プランになる可能性があります。
enable-async-batch-get v8.5.5で追加
- TiDBがバッチ取得演算子を実行する際に非同期モードを使用するかどうかを制御します。非同期モードを使用すると、ゴルーチンのオーバーヘッドを削減し、パフォーマンスを向上させることができます。通常、この設定項目を変更する必要はありません。
- デフォルト値:
false
オープントレース
OpenTracingに関連するコンフィグレーション項目。
enable
- 一部のTiDBコンポーネントの呼び出しオーバーヘッドをトレースするために、opentracingを有効にします。opentracingを有効にすると、パフォーマンスが低下することに注意してください。
- デフォルト値:
false
rpc-metrics
- RPCメトリクスを有効にします。
- デフォルト値:
false
opentracing.sampler
opentracing.sampler に関連するコンフィグレーション項目。
type
- OpenTracingサンプラーのタイプを指定します。文字列値は大文字と小文字を区別しません。
- デフォルト値:
"const" - 値のオプション:
"const"、"probabilistic"、"ratelimiting"、"remote"
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
opentracing.reporter に関連するコンフィグレーション項目。
queue-size
- レポーターがメモリ内に記録するキューのサイズ。
- デフォルト値:
0
buffer-flush-interval
- レポーターがメモリ内のスパンをストレージにフラッシュする間隔。
- デフォルト値:
0
log-spans
- 送信されたすべてのスパンのログを出力するかどうかを決定します。
- デフォルト値:
false
local-agent-host-port
- 記者がメールを送る宛先は、イェーガーエージェントに繋がっている。
- デフォルト値:
""
pd-client
pd-server-timeout
- TiDBがPDクライアントを介してPDノードにリクエストを送信する際のタイムアウト時間。
- デフォルト値: 3
- 単位:秒
tikv-client
grpc-connection-count
- 各TiKVとの間で確立できる最大接続数。
- デフォルト値:
4
grpc-keepalive-time
- TiDBノードとTiKVノード間のRPC接続の
keepalive時間間隔。指定された時間間隔内にネットワークパケットがない場合、gRPCクライアントはpingコマンドをTiKVに実行して、TiKVがアクティブかどうかを確認します。 - デフォルト:
10 - 最小値:
1 - 単位:秒
grpc-keepalive-timeout
- TiDBノードとTiKVノード間のRPC
keepaliveチェックのタイムアウト。 - デフォルト値:
3 - 最小値:
0.05 - 単位:秒
grpc-compression-type
- TiDBノードからTiKVノードへのデータ転送に使用される圧縮タイプを指定します。デフォルト値は
"none"で、これは圧縮なしを意味します。gzip圧縮を有効にするには、この値を"gzip"に設定します。 - デフォルト値:
"none" - 値のオプション:
"none"、"gzip"
注記:
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の値に基づいて、基本的なバッチ処理の後にさらに待機するかどうかを決定します。この追加のバッチ処理により、より多くのリクエストを単一のBatchCommandsRequestにカプセル化されたできます。 - デフォルト値:
"standard" - お得なオプション:
"basic": この動作は、v8.3.0 より前のバージョンと一致しており、TiDB はtikv-client.max-batch-wait-timeが 0 より大きく、TiKV の負荷がtikv-client.overload-thresholdの値を超えた場合にのみ追加のバッチ処理を実行します。"standard": TiDB は、最近のリクエストの到着時間間隔に基づいてリクエストを動的にバッチ処理します。これは、高スループットのシナリオに適しています。"positive": TiDB は常に追加のバッチ処理を実行します。これは、最適なパフォーマンスを実現するために、高スループットのテストシナリオに適しています。ただし、低負荷のシナリオでは、この戦略により不要なバッチ処理の待機時間が発生し、パフォーマンスが低下する可能性があります。"custom{...}": バッチ処理戦略のパラメータをカスタマイズできます。このオプションは TiDB の内部テスト用であり、一般的な使用には推奨されません。
max-batch-size
- バッチで送信されるRPCパケットの最大数。値が
0でない場合、BatchCommandsAPIを使用して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とtikv-client.max-batch-wait-timeの両方が0より大きい値に設定されている場合にのみ有効になります。この値を変更しないことをお勧めします。 - デフォルト値:
200
copr-req-timeout v7.5.0で追加
- 単一のコプロセッサー要求のタイムアウト時間。
- デフォルト値:
60 - 単位:秒
enable-replica-selector-v2 v8.0.0の新機能
- TiKVにRPCリクエストを送信する際に、リージョンレプリカセレクターの新しいバージョンを使用するかどうか。
- デフォルト値:
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-commit はv6.0.0 で追加されました。
- 悲観的トランザクション モードがグローバルに有効になっている場合 (
tidb_txn_mode='pessimistic') に、自動コミット トランザクションが使用するトランザクション モードを決定します。デフォルトでは、悲観的トランザクション モードがグローバルに有効になっていても、自動コミット トランザクションは楽観的トランザクション モードを使用します。pessimistic-auto-commitを有効にすると (true} に設定)、自動コミット トランザクションも悲観的モードを使用するようになり、明示的にコミットされた他の悲観的トランザクションと一貫性が保たれます。 - 競合が発生するシナリオでは、この設定を有効にすると、TiDB は自動コミットトランザクションをグローバルロック待機管理に組み込み、デッドロックを回避し、デッドロックを引き起こす競合によって発生するレイテンシーの急増を軽減します。
- 競合のないシナリオで、自動コミット トランザクションが多数ある場合 (具体的な数は実際のシナリオによって決まります。たとえば、自動コミット トランザクションの数がアプリケーションの総数の半分以上を占める場合)、単一のトランザクションが大量のデータを操作すると、この構成を有効にするとパフォーマンスが低下します。たとえば、自動コミット
INSERT INTO SELECTステートメントです。 - セッションレベルのシステム変数
tidb_dml_type"bulk"に設定されている場合、セッションにおけるこの設定の効果は、それをfalseに設定することと同じです。 - デフォルト値:
false
constraint-check-in-place-pessimistic) v6.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によって設定されます。
注記:
バージョン6.6.0以降、TiDBはリソース制御サポートしています。この機能を使用すると、異なるリソースグループで異なる優先度の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 - 指定可能な値:
OFF、ON - この設定値は、システム変数
tidb_enable_ddlの値を初期化します。 - v6.3.0より前は、この設定は
run-ddlによって設定されます。
tidb_enable_stats_owner v8.4.0 で追加されました。
- この構成は、対応する TiDB インスタンスが統計情報の自動更新タスクを実行できるかどうかを制御します。
- デフォルト値:
true - 指定可能な値:
true、false - この設定値は、システム変数
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で追加
- ステートメントサマリーの永続化が有効になっている場合、この設定では永続化できるデータファイルの最大数を指定します。
0ファイル数に制限がないことを意味します。 - デフォルト値:
0 - データ保持要件とディスク容量の使用状況に基づいて値を調整できます。
プロキシプロトコル
PROXYプロトコルに関連するコンフィグレーション項目。
networks
- プロキシプロトコルプロトコルを使用して TiDB に接続できるプロキシ サーバーの IP アドレスのリスト
- デフォルト値: ""
- 一般的に、リバースプロキシ経由でTiDBにアクセスする場合、TiDBはリバースプロキシサーバーのIPアドレスをクライアントのIPアドレスとして認識します。HAProxyなど、PROXYプロトコルをサポートするリバースプロキシは、PROXYプロトコルを有効にすることで、実際のクライアントIPアドレスをTiDBに渡すことができます。
- このパラメータを設定すると、TiDB は設定された送信元 IP アドレスが PROXY プロトコルを使用して TiDB に接続することを許可します。PROXY 以外のプロトコルが使用されると、この接続は拒否されます。このパラメータを空のままにすると、どの IP アドレスも PROXY プロトコルを使用して TiDB に接続できません。値は
,を区切り文字とする IP アドレス (192.168.1.50) または CIDR (192.168.1.0/24) です。*任意の IP アドレスを意味します。
fallbackable (v6.5.1の新機能)
- PROXYプロトコルのフォールバックモードを有効にするかどうかを制御します。この設定項目が
trueに設定されている場合、TiDBはproxy-protocol.networksに属するクライアントがPROXYプロトコル仕様を使用せずに、またはPROXYプロトコルヘッダーを送信せずにTiDBに接続することを受け入れられます。デフォルトでは、TiDBはproxy-protocol.networksに属し、PROXYプロトコルヘッダーを送信するクライアント接続のみを受け入れます。 - デフォルト値:
false
実験的
バージョン3.1.0で導入されたexperimentalセクションでは、TiDBの実験的機能に関連する設定について説明します。
allow-expression-index v4.0.0の新機能
- 式インデックスを作成できるかどうかを制御します。TiDB v5.2.0 以降では、式内の関数が安全であれば、この設定を有効にしなくても、その関数に基づいて式インデックスを直接作成できます。他の関数に基づいて式インデックスを作成する場合は、この設定を有効にできますが、正確性の問題が発生する可能性があります。
tidb_allow_function_for_expression_index変数を照会することで、式の作成に直接使用しても安全な関数を取得できます。 - デフォルト値:
false