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
  • 最大値 (64 ビット プラットフォーム): 18446744073709551615
  • 最大値 (32 ビット プラットフォーム): 4294967295

temp-dir v6.3.0 の新機能

  • TiDB が一時データを格納するために使用するファイル システムの場所。機能が TiDB ノードのローカルstorageを必要とする場合、TiDB は対応する一時データをこの場所に保存します。
  • インデックスの作成時にtidb_ddl_enable_fast_reorgが有効になっている場合、新しく作成されたインデックスのためにバックフィルが必要なデータは、最初に TiDB ローカルの一時ディレクトリに保存され、次にバッチで TiKV にインポートされるため、インデックスの作成が高速化されます。
  • デフォルト値: "/tmp/tidb"

oom-use-tmp-storage

  • 1 つの SQL ステートメントがシステム変数tidb_mem_quota_queryで指定されたメモリクォータを超えた場合に、一部の演算子の一時storageを有効にするかどうかを制御します。
  • デフォルト値: true

tmp-storage-path

  • 1 つの SQL ステートメントがシステム変数tidb_mem_quota_queryで指定されたメモリクォータを超える場合に、一部の演算子の一時storageパスを指定します。
  • デフォルト値: <temporary directory of OS>/<OS user ID>_tidb/MC4wLjAuMDo0MDAwLzAuMC4wLjA6MTAwODA=/tmp-storageMC4wLjAuMDo0MDAwLzAuMC4wLjA6MTAwODA= <host>:<port>/<statusHost>:<statusPort>Base64エンコード結果です。
  • この構成は、システム変数tidb_enable_tmp_storage_on_oomONの場合にのみ有効です。

tmp-storage-quota

  • tmp-storage-pathのstorageのクォータを指定します。単位はバイトです。
  • 単一の 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
  • TiDB でのKILL xxxの動作は、MySQL での動作とは異なります。 TiDB にはTIDBキーワード、つまりKILL TIDB xxx必要です。 compatible-kill-querytrueに設定されている場合、 TIDBキーワードは必要ありません。
  • ユーザーがCtrl + Cを押したときの MySQL コマンドライン クライアントのデフォルトの動作は、バックエンドへの新しい接続を作成し、その新しい接続でKILLステートメントを実行するため、この区別は重要です。ロード バランサーまたはプロキシが元のセッションとは異なる TiDBサーバーインスタンスに新しい接続を送信した場合、間違ったセッションが終了し、クラスターを使用しているアプリケーションが中断される可能性があります。 KILLステートメントで参照する接続が、 KILLステートメントの送信先と同じサーバー上にあることが確実な場合にのみ、 compatible-kill-query有効にしてください。

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によって決定されます。 check-mb4-value-in-utf8引き続き有効です。ただし、 check-mb4-value-in-utf8instance.tidb_check_mb4_value_in_utf8の両方が設定されている場合は、後者が有効になります。

treat-old-version-utf8-as-utf8mb4

  • 古いテーブルのutf8文字セットをutf8mb4として扱うかどうかを決定します。
  • デフォルト値: true

alter-primary-key (非推奨)

  • 主キー制約を列に追加するか列から削除するかを決定します。
  • デフォルト値: false
  • このデフォルト設定では、主キー制約の追加または削除はサポートされていません。 alter-primary-keytrueを設定すると、この機能を有効にできます。ただし、スイッチがオンになる前にテーブルがすでに存在し、その主キー列のデータ型が整数である場合、この構成項目を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-modetrueに設定されている場合、 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

  • 新しい照合順序サポートを有効または無効にします。
  • デフォルト値: true
  • 注: この構成は、最初に初期化された TiDB クラスターに対してのみ有効です。初期化後は、この構成項目を使用して新しい照合順序サポートを有効または無効にすることはできません。

max-server-connections

  • TiDB で許可される同時クライアント接続の最大数。リソースを制御するために使用されます。
  • デフォルト値: 0
  • デフォルトでは、TiDB は同時クライアント接続数に制限を設定しません。この構成項目の値が0より大きく、実際のクライアント接続数がこの値に達すると、TiDBサーバーは新しいクライアント接続を拒否します。
  • v6.2.0 以降、TiDB 構成項目instance.max_connectionsまたはシステム変数max_connectionsを使用して、TiDB で許可される同時クライアント接続の最大数を設定します。 max-server-connectionsは引き続き有効です。ただし、 max-server-connectionsinstance.max_connections同時に設定した場合は、後者が有効になります。

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 v5.0 の新機能

  • 1 つのテーブルの列数の制限を設定します。
  • デフォルト値: 1017
  • 現在、有効な値の範囲は[1017, 4096]です。

index-limit v5.0 の新機能

  • 1 つのテーブル内のインデックス数の制限を設定します。
  • デフォルト値: 64
  • 現在、有効な値の範囲は[64, 512]です。

enable-telemetry v4.0.2 の新機能

  • TiDB でのテレメトリ収集を有効または無効にします。
  • デフォルト値: v6.5.0 の場合はtrue 。 v6.5.1 以降の v6.5.x バージョンの場合はfalse
  • この構成が TiDB インスタンスでtrueに設定され、 tidb_enable_telemetryシステム変数がONに設定されている場合、この TiDB インスタンスでのテレメトリ収集が有効になります。
  • この構成がすべての TiDB インスタンスでfalseに設定されている場合、TiDB でのテレメトリ収集は無効になり、 tidb_enable_telemetryシステム変数は有効になりません。詳細はテレメトリーを参照してください。

enable-tcp4-only v5.0 の新機能

  • TCP4 のみでのリッスンを有効または無効にします。
  • デフォルト値: false
  • このオプションを有効にすると、「tcp4」プロトコルでTCP ヘッダーからの実際のクライアント IP正しく解析できるため、TiDB を LVS で使用してロード バランシングを行う場合に便利です。

enable-enum-length-limit v5.0 の新機能

  • 単一のENUM要素と単一のSET要素の最大長を制限するかどうかを決定します。
  • デフォルト値: true
  • この構成値がtrueの場合、単一のENUM要素と単一のSET要素の最大長は 255 文字で、これはMySQL 8.0と互換性があります。この構成値がfalseの場合、1 つの要素の長さに制限はなく、TiDB (v5.0 より前) と互換性があります。

graceful-wait-before-shutdown v5.0 の新機能

  • サーバーをシャットダウンするときに TiDB が待機する秒数を指定します。これにより、クライアントは切断できるようになります。
  • デフォルト値: 0
  • TiDB が (猶予期間で) シャットダウンを待機している場合、HTTP ステータスは失敗を示し、ロード バランサーがトラフィックを再ルーティングできるようにします。

enable-global-kill v6.1.0 の新機能

  • Global Kill (インスタンス間のクエリまたは接続の終了) 機能を有効にするかどうかを制御します。
  • デフォルト値: true
  • 値がtrueの場合、 KILLKILL TIDBステートメントの両方がインスタンス間のクエリまたは接続を終了できるため、クエリまたは接続を誤って終了することを心配する必要はありません。クライアントを使用して任意の TiDB インスタンスに接続し、 KILLまたはKILL TIDBステートメントを実行すると、ステートメントはターゲットの TiDB インスタンスに転送されます。クライアントと TiDB クラスターの間にプロキシがある場合、 KILLKILL TIDBステートメントも実行のためにターゲット TiDB インスタンスに転送されます。現在、 enable-global-killtrueの場合、MySQL コマンドラインctrl + cを使用して TiDB でクエリまたは接続を終了することはサポートされていません。 KILLステートメントの詳細については、 殺す参照してください。

initialize-sql-file v6.5.1 の新機能

  • TiDB クラスターの初回起動時に実行する SQL スクリプトを指定します。
  • デフォルト値: ""
  • このスクリプト内のすべての SQL ステートメントは、権限チェックなしで最高の権限で実行されます。指定した SQL スクリプトの実行に失敗すると、TiDB クラスターが起動しない可能性があります。
  • この構成アイテムは、システム変数の値の変更、ユーザーの作成、権限などの操作を実行するために使用されます。

v5.0.0 の新enable-forwarding

  • ネットワーク分離の可能性がある場合に、TiDB の PD クライアントと TiKV クライアントがフォロワー経由でリーダーにリクエストを転送するかどうかを制御します。
  • デフォルト値: false
  • 環境でネットワークが分離されている可能性がある場合、このパラメーターを有効にすると、サービスが利用できなくなる期間を短縮できます。
  • 分離、ネットワークの中断、またはダウンタイムが発生したかどうかを正確に判断できない場合、このメカニズムを使用すると判断を誤るリスクがあり、可用性とパフォーマンスが低下します。ネットワーク障害が発生したことがない場合は、このパラメーターを有効にすることはお勧めしません。

enable-table-lock v4.0.0 の新機能

  • テーブル ロック機能を有効にするかどうかを制御します。
  • デフォルト値: false
  • テーブル ロックは、複数のセッション間で同じテーブルへの同時アクセスを調整するために使用されます。現在、 READWRITE 、およびWRITE LOCALロック タイプがサポートされています。構成項目がfalseに設定されている場合、 LOCK TABLESまたはUNLOCK TABLESステートメントを実行しても効果がなく、「LOCK/UNLOCK TABLES is not supported」という警告が返されます。詳細については、 LOCK TABLESUNLOCK TABLES参照してください。

labels

  • サーバーラベルを指定します。たとえば、 { zone = "us-west-1", dc = "dc1", rack = "rack1", host = "tidb1" }です。
  • デフォルト値: {}

ノート:

  • TiDB では、 zoneラベルは、サーバーが配置されているゾーンを指定するために特別に使用されます。 zoneが null 以外の値に設定されている場合、対応する値がtxn-scoreFollower readなどの機能によって自動的に使用されます。
  • groupラベルはTiDB Operatorで特別な用途があります。 TiDB Operator使用してデプロイされたクラスターの場合、 groupラベルを手動で指定することは勧めしません。

ログ

ログに関するコンフィグレーション項目です。

level

  • ログ出力レベルを指定します。
  • 値のオプション: debuginfowarnerror 、およびfatal
  • デフォルト値: info

format

  • ログ出力形式を指定します。
  • 値のオプション: jsonおよびtext
  • デフォルト値: text

enable-timestamp

  • ログでのタイムスタンプ出力を有効にするかどうかを決定します。
  • デフォルト値: null
  • 値をfalseに設定すると、ログはタイムスタンプを出力しません。

ノート:

  • 下位互換性を維持するために、最初のdisable-timestamp構成アイテムは引き続き有効です。ただし、 disable-timestamp値がenable-timestampの値と意味的に競合する場合 (たとえば、 enable-timestampdisable-timestampの両方がtrueに設定されている場合)、TiDB はdisable-timestampの値を無視します。
  • 現在、TiDB はdisable-timestampを使用してログにタイムスタンプを出力するかどうかを決定します。この場合、 enable-timestampの値はnullです。
  • それ以降のバージョンでは、 disable-timestamp構成が削除されます。 disable-timestamp破棄して、意味的に理解しやすいenable-timestamp使用します。

enable-slow-log

  • スロー クエリ ログを有効にするかどうかを決定します。
  • デフォルト値: true
  • スロー クエリ ログを有効にするには、 enable-slow-logtrueを設定します。それ以外の場合は、 falseに設定します。
  • v6.1.0 以降、スロー クエリ ログを有効にするかどうかは、TiDB 構成項目instance.tidb_enable_slow_logまたはシステム変数tidb_enable_slow_logによって決定されます。 enable-slow-logは引き続き有効です。ただし、 enable-slow-loginstance.tidb_enable_slow_log同時に設定した場合は、後者が有効になります。

slow-query-file

  • スロー クエリ ログのファイル名。
  • デフォルト値: tidb-slow.log
  • TiDB v2.1.8ではスローログのフォーマットが更新されたため、スローログはスローログファイルに別途出力されます。 v2.1.8 より前のバージョンでは、この変数はデフォルトで "" に設定されています。
  • 設定後、スロークエリのログは別途このファイルに出力されます。

slow-threshold

  • スローログの消費時間の閾値を出力します。
  • デフォルト値: 300
  • 単位: ミリ秒
  • クエリの値がデフォルト値より大きい場合、それはスロー クエリであり、スロー ログに出力されます。
  • v6.1.0以降、スローログの消費時間の閾値は、TiDBの設定項目instance.tidb_slow_log_thresholdまたはシステム変数tidb_slow_log_thresholdで指定されるようになりました。 slow-thresholdは引き続き有効です。ただし、 slow-thresholdinstance.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によって決定されます。 record-plan-in-slow-logは引き続き有効です。ただし、 record-plan-in-slow-loginstance.tidb_record_plan_in_slow_log同時に設定した場合は、後者が有効になります。

expensive-threshold

  • expensive回の操作で行数の閾値を出力します。
  • デフォルト値: 10000
  • クエリの行数(統計に基づく中間結果を含む)がこの値より大きい場合は、 expensive操作で[EXPENSIVE_QUERY]プレフィックスを付けてログを出力します。

ログファイル

ログファイルに関するコンフィグレーション項目です。

filename

  • 一般ログ ファイルのファイル名。
  • デフォルト値: ""
  • 設定すると、このファイルにログが出力されます。

max-size

  • ログ ファイルのサイズ制限。
  • デフォルト値: 300
  • 単位:MB
  • 最大値は 4096 です。

max-days

  • ログが保持される最大日数。
  • デフォルト値: 0
  • ログはデフォルトで保持されます。値を設定すると、期限切れのログはmax-days後にクリーンアップされます。

max-backups

  • 保持されるログの最大数。
  • デフォルト値: 0
  • デフォルトでは、すべてのログ ファイルが保持されます。 7に設定すると、最大 7 つのログ ファイルが保持されます。

Security

セキュリティに関するコンフィグレーション項目です。

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

  • 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.0""TLSv1.1""TLSv1.2" 、および"TLSv1.3"

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

v6.5.0 の新disconnect-on-expired-password

  • パスワードの有効期限が切れたときに TiDB がクライアント接続を切断するかどうかを決定します。
  • デフォルト値: true
  • オプションの値: truefalse
  • trueに設定すると、パスワードの有効期限が切れたときにクライアント接続が切断されます。 falseに設定すると、クライアント接続は「サンドボックス モード」に制限され、ユーザーはパスワードのリセット操作のみを実行できます。

session-token-signing-cert v6.4.0 の新機能

  • デフォルト値: ""

session-token-signing-key v6.4.0 の新機能

  • デフォルト値: ""

パフォーマンス

性能に関するコンフィグレーション項目です。

max-procs

  • TiDB が使用する CPU の数。
  • デフォルト値: 0
  • デフォルトの0マシン上のすべての CPU を使用することを示します。 n に設定すると、TiDB は n 個の CPU を使用することもできます。

server-memory-quota v4.0.9 の新機能

  • tidb-server インスタンスのメモリ使用制限。
  • デフォルト値: 0 (バイト単位)。これは、メモリ制限がないことを意味します。

max-txn-ttl

  • 1 つのトランザクションがロックを保持できる最長時間。この時間を超えると、トランザクションのロックが他のトランザクションによってクリアされ、このトランザクションを正常にコミットできなくなる可能性があります。
  • デフォルト値: 3600000
  • 単位:ミリ秒
  • この時間より長くロックを保持しているトランザクションは、コミットまたはロールバックすることしかできません。コミットが成功しない可能性があります。

stmt-count-limit

  • 1 つの TiDB トランザクションで許可されるステートメントの最大数。
  • デフォルト値: 5000
  • ステートメントの数がstmt-count-limit超えた後にトランザクションがロールバックまたはコミットされない場合、TiDB はstatement count 5001 exceeds the transaction limitation, autocommit = falseエラーを返します。この構成は、リトライ可能な楽観的トランザクションでのみ有効です。悲観的トランザクションを使用するか、トランザクションの再試行を無効にしている場合、トランザクション内のステートメントの数はこの構成によって制限されません。

txn-entry-size-limit v5.0 の新機能

  • TiDB の 1 行のデータのサイズ制限。
  • デフォルト値: 6291456 (バイト単位)
  • トランザクション内の単一のキー値レコードのサイズ制限。サイズ制限を超えると、TiDB はentry too largeエラーを返します。この構成アイテムの最大値は125829120 (120 MB) を超えません。
  • TiKV にも同様の制限があることに注意してください。 1 回の書き込みリクエストのデータ サイズがraft-entry-max-sizeを超える場合 (デフォルトでは 8 MB)、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 (バイト単位)
  • 1 回のトランザクションで、キー値レコードの合計サイズがこの値を超えることはできません。このパラメーターの最大値は1099511627776 (1 TB) です。 binlogを使用してダウンストリーム コンシューマー Kafka ( arbiterクラスターなど) にサービスを提供している場合、このパラメーターの値は1073741824 (1 GB) を超えてはならないことに注意してください。これは、Kafka が処理できる単一のメッセージ サイズの上限が 1 GB であるためです。それ以外の場合、この制限を超えるとエラーが返されます。
  • TiDB v6.5.0 以降のバージョンでは、この構成は推奨されなくなりました。トランザクションのメモリサイズはセッションのメモリ使用量に累積され、セッションメモリのしきい値を超えるとtidb_mem_quota_query変数が有効になります。以前のバージョンとの互換性を保つために、以前のバージョンから TiDB v6.5.0 以降にアップグレードする場合、この構成は次のように機能します。
    • この構成が設定されていないか、デフォルト値 ( 104857600 ) に設定されている場合、アップグレード後に、トランザクションのメモリサイズがセッションのメモリ使用量に累積され、変数tidb_mem_quota_queryが有効になります。
    • この構成がデフォルト ( 104857600 ) に設定されていない場合でも有効であり、単一のトランザクションのサイズを制御する動作は、アップグレードの前後で変更されません。これは、トランザクションのメモリサイズがtidb_mem_quota_query変数によって制御されないことを意味します。

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ステートメントが表示されたときにサーバーは実行を拒否します。

stats-lease

  • 統計の再ロード、表の行数の更新、自動分析の実行が必要かどうかの確認、フィードバックを使用した統計の更新、および列の統計のロードの時間間隔。
  • デフォルト値: 3s
    • stats-lease回の間隔で、TiDB は更新の統計をチェックし、更新が存在する場合はそれらをメモリに更新します。
    • TiDB は20 * stats-lease回の間隔で、DML によって生成された行の総数と変更された行の数をシステム テーブルに更新します。
    • stats-leaseの間隔で、TiDB は自動的に分析する必要があるテーブルとインデックスをチェックします。
    • stats-leaseの間隔で、TiDB はメモリにロードする必要がある列統計をチェックします。
    • 200 * stats-leaseの間隔で、TiDB はメモリにキャッシュされたフィードバックをシステム テーブルに書き込みます。
    • 5 * stats-leaseの間隔で、TiDB はシステム テーブルのフィードバックを読み取り、メモリにキャッシュされた統計を更新します。
  • stats-leaseを 0 に設定すると、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_PRIORITYDELAYED 、およびHIGH_PRIORITYです。
  • v6.1.0 以降、すべてのステートメントの優先順位は、TiDB 構成項目instance.tidb_force_priorityまたはシステム変数tidb_force_priorityによって決定されます。 force-priorityは引き続き有効です。ただし、 force-priorityinstance.tidb_force_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_mppONです。

enable-stats-cache-mem-quota v6.1.0 の新機能

  • 統計キャッシュのメモリクォータを有効にするかどうかを制御します。
  • デフォルト値: false

stats-load-concurrency v5.4.0 の新機能

  • TiDB 同期ロード統計機能が同時に処理できる列の最大数。
  • デフォルト値: 5
  • 現在、有効な値の範囲は[1, 128]です。

stats-load-queue-size v5.4.0 の新機能

  • TiDB 同期読み込み統計機能がキャッシュできる列リクエストの最大数。
  • デフォルト値: 1000
  • 現在、有効な値の範囲は[1, 100000]です。

オープントレース

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

  • レポーターがメモリ内のスパンをstorageにフラッシュする間隔。
  • デフォルト値: 0

log-spans

  • 送信されたすべてのスパンのログを出力するかどうかを決定します。
  • デフォルト値: false

local-agent-host-port

  • レポーターがスパンを jaeger-agent に送信するアドレス。
  • デフォルト値: ""

tikv クライアント

grpc-connection-count

  • 各 TiKV で確立される接続の最大数。
  • デフォルト値: 4

grpc-keepalive-time

  • TiDB ノードと TiKV ノード間の RPC 接続のkeepalive時間間隔。指定された時間間隔内にネットワーク パケットがない場合、gRPC クライアントは TiKV に対してpingコマンドを実行して、生きているかどうかを確認します。
  • デフォルト: 10
  • 単位:秒

grpc-keepalive-timeout

  • TiDB ノードと TiKV ノード間の RPC keepaliveチェックのタイムアウト。
  • デフォルト値: 3
  • 単位:秒

grpc-compression-type

  • TiDB ノードと TiKV ノード間のデータ転送に使用される圧縮タイプを指定します。デフォルト値は"none"で、これは圧縮なしを意味します。 gzip 圧縮を有効にするには、この値を"gzip"に設定します。
  • デフォルト値: "none"
  • 値のオプション: "none""gzip"

commit-timeout

  • トランザクションコミット実行時の最大タイムアウト。
  • デフォルト値: 41s
  • この値をRaft選択タイムアウトの 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-cache v4.0.0 の新機能

このセクションでは、コプロセッサーキャッシュ機能に関連する設定項目を紹介します。

capacity-mb

  • キャッシュされたデータの合計サイズ。キャッシュ スペースがいっぱいになると、古いキャッシュ エントリが削除されます。値が0.0の場合、コプロセッサー・キャッシュ機能は無効になります。
  • デフォルト値: 1000.0
  • 単位:MB
  • タイプ: フロート

txn ローカル ラッチ

トランザクション ラッチに関するコンフィグレーション。多くのローカル トランザクションの競合が発生する場合は、有効にすることをお勧めします。

enabled

  • トランザクションのメモリロックを有効にするかどうかを決定します。
  • デフォルト値: false

capacity

  • ハッシュに対応するスロットの数。2 の指数倍数に自動的に調整されます。各スロットは 32 バイトのメモリを占有します。設定が小さすぎると、データの書き込みが比較的広い範囲をカバーするシナリオ (データのインポートなど) で、実行速度が遅くなり、パフォーマンスが低下する可能性があります。
  • デフォルト値: 2048000

binlog

TiDB Binlogに関連する構成。

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をエクスポートするときのPump選択の戦略。現在、 hashrange方法のみがサポートされています。
  • デフォルト値: range

スターテス

TiDB サービスのステータスに関するコンフィグレーション。

report-status

  • HTTP API サービスを有効または無効にします。
  • デフォルト値: true

record-db-qps

  • データベース関連の QPS メトリクスを Prometheus に送信するかどうかを決定します。
  • デフォルト値: false

pessimistic-txn

悲観的トランザクションの使用法については、 TiDB ペシミスティックトランザクションモードを参照してください。

max-retry-count

  • 悲観的トランザクションでの各ステートメントの最大再試行回数。再試行回数がこの制限を超えると、エラーが発生します。
  • デフォルト値: 256

deadlock-history-capacity

  • 1 つの TiDBサーバーのINFORMATION_SCHEMA.DEADLOCKSのテーブルに記録できるデッドロック イベントの最大数。このテーブルがいっぱいになり、追加のデッドロック イベントが発生した場合、テーブル内の最も古いレコードが削除され、最新のエラーに対応します。
  • デフォルト値: 10
  • 最小値: 0
  • 最大値: 10000

deadlock-history-collect-retryable

pessimistic-auto-commitv6.0.0 の新機能

  • 悲観的トランザクション モードがグローバルに有効になっている場合 ( tidb_txn_mode='pessimistic' )、自動コミット トランザクションが使用するトランザクション モードを決定します。デフォルトでは、悲観的トランザクション モードがグローバルに有効になっている場合でも、自動コミット トランザクションは引き続き楽観的トランザクション モードを使用します。 pessimistic-auto-commitを有効にした後 ( trueに設定)、自動コミット トランザクションは悲観的モードも使用します。これは、他の明示的にコミットされた悲観的トランザクションと一致します。
  • 競合のあるシナリオでは、この構成を有効にした後、TiDB は自動コミット トランザクションをグローバル ロックレイテンシー管理に含めます。
  • 競合のないシナリオの場合、多くの自動コミット トランザクションがある場合 (具体的な数は実際のシナリオによって決定されます。たとえば、自動コミット トランザクションの数は、アプリケーションの総数の半分以上を占めます)。 1 つのトランザクションで大量のデータが処理されるため、この構成を有効にするとパフォーマンスが低下します。たとえば、auto-commit INSERT INTO SELECTステートメントです。
  • デフォルト値: false

constraint-check-in-place-pessimistic v6.4.0 の新機能

分離読み取り

読み取り分離に関連するコンフィグレーション項目。

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]
  • 単位: ミリ秒
  • v6.1.0 より前では、この構成はslow-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_PRIORITYDELAYED 、およびHIGH_PRIORITYです。
  • v6.1.0 より前では、この構成はforce-priorityで設定されます。

max_connections

  • 1 つの TiDB インスタンスに許可される接続の最大数。リソース制御に使用できます。
  • デフォルト値: 0
  • 範囲: [0, 100000]
  • デフォルト値0は制限なしを意味します。この変数の値が0よりも大きく、接続数がその値に達すると、TiDBサーバーはクライアントからの新しい接続を拒否します。
  • この構成の値は、システム変数max_connectionsの値を初期化します
  • v6.2.0 より前では、この構成はmax-server-connectionsで設定されます。

tidb_enable_ddl

  • この構成は、対応する TiDB インスタンスが DDL 所有者になることができるかどうかを制御します。
  • デフォルト値: true
  • 可能な値: OFFON
  • この構成の値は、システム変数tidb_enable_ddlの値を初期化します
  • v6.3.0 より前では、この構成はrun-ddlで設定されています。

プロキシプロトコル

PROXY プロトコルに関するコンフィグレーション項目です。

networks

  • プロキシ プロトコルを使用して TiDB に接続できるプロキシ サーバーの IP アドレスのリスト
  • デフォルト値: ""
  • 一般に、リバース プロキシの背後にある TiDB にアクセスすると、TiDB はリバース プロキシサーバーの IP アドレスをクライアントの IP アドレスとして取得します。 PROXY プロトコルを有効にすることで、このプロトコルをサポートする HAProxy などのリバース プロキシは、実際のクライアント IP アドレスを TiDB に渡すことができます。
  • このパラメータを設定すると、TiDB は、設定された送信元 IP アドレスが PROXY プロトコルを使用して TiDB に接続できるようにします。 PROXY 以外のプロトコルが使用されている場合、この接続は拒否されます。このパラメーターを空のままにすると、PROXY プロトコルを使用して IP アドレスが TiDB に接続できなくなります。値は、IP アドレス (192.168.1.50) または CIDR (192.168.1.0/24) で、区切り記号として,を使用できます。 *任意の IP アドレスを意味します。

実験的

v3.1.0 で導入されたexperimentalセクションでは、TiDB の実験的機能に関連する構成について説明します。

allow-expression-index v4.0.0 の新機能

  • 式インデックスを作成できるかどうかを制御します。 TiDB v5.2.0 以降、式の関数が安全な場合、この構成を有効にしなくても、この関数に基づいて式インデックスを直接作成できます。他の関数に基づいて式インデックスを作成する場合は、この構成を有効にできますが、正確性の問題が存在する可能性があります。 tidb_allow_function_for_expression_index変数を照会することで、式の作成に直接使用しても安全な関数を取得できます。
  • デフォルト値: false

このページは役に立ちましたか?