TiDBConfiguration / コンフィグレーションファイル
TiDB 構成ファイルは、コマンドライン パラメーターよりも多くのオプションをサポートしています。デフォルトの構成ファイルconfig.toml.example
をダウンロードして、名前をconfig.toml
に変更できます。このドキュメントでは、 コマンド ライン オプションに含まれないオプションのみを説明します。
split-table
- テーブルごとに個別のリージョンを作成するかどうかを決定します。
- デフォルト値:
true
- 多数のテーブル (たとえば、10 万を超えるテーブル) を作成する必要がある場合は、
false
に設定することをお勧めします。
token-limit
- リクエストを同時に実行できるセッションの数。
- タイプ: 整数
- デフォルト値:
1000
- 最小値:
1
- 最大値 (64 ビット プラットフォーム):
18446744073709551615
- 最大値 (32 ビット プラットフォーム):
4294967295
oom-use-tmp-storage
- 1 つの SQL ステートメントがシステム変数
tidb_mem_quota_query
で指定されたメモリ クォータを超えた場合に、一部の演算子の一時ストレージを有効にするかどうかを制御します。 - デフォルト値:
true
tmp-storage-path
- 1 つの SQL ステートメントがシステム変数
tidb_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サーバーは起動時にエラーを報告し、終了します。
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
- 新しい照合順序サポートを有効または無効にします。
- デフォルト値:
true
- 注: この構成は、最初に初期化された 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
v5.0 の新機能
- 1 つのテーブルの列数の制限を設定します。
- デフォルト値:
1017
- 現在、有効な値の範囲は
[1017, 4096]
です。
index-limit
v5.0 の新機能
- 1 つのテーブル内のインデックス数の制限を設定します。
- デフォルト値:
64
- 現在、有効な値の範囲は
[64, 512]
です。
enable-telemetry
telemetry v4.0.2 の新機能
- TiDB でのテレメトリ収集を有効または無効にします。
- デフォルト値:
true
- この構成がすべての 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
の場合、KILL
ステートメントとKILL TIDB
ステートメントの両方がインスタンス間のクエリまたは接続を終了できるため、クエリまたは接続を誤って終了することを心配する必要はありません。クライアントを使用して任意の TiDB インスタンスに接続し、KILL
またはKILL TIDB
ステートメントを実行すると、ステートメントはターゲットの TiDB インスタンスに転送されます。クライアントと TiDB クラスターの間にプロキシがある場合、KILL
ステートメントとKILL TIDB
ステートメントも実行のためにターゲット TiDB インスタンスに転送されます。現在、enable-global-kill
がtrue
の場合、MySQL コマンドラインctrl + cを使用して TiDB でクエリまたは接続を終了することはサポートされていません。KILL
ステートメントの詳細については、 殺すを参照してください。
enable-forwarding
新機能
- ネットワーク分離の可能性がある場合に、TiDB の PD クライアントと TiKV クライアントがフォロワー経由でリーダーにリクエストを転送するかどうかを制御します。
- デフォルト値:
false
- 環境でネットワークが分離されている可能性がある場合、このパラメーターを有効にすると、サービスが利用できなくなる期間を短縮できます。
- 分離、ネットワークの中断、またはダウンタイムが発生したかどうかを正確に判断できない場合、このメカニズムを使用すると判断を誤るリスクがあり、可用性とパフォーマンスが低下します。ネットワーク障害が発生したことがない場合は、このパラメーターを有効にすることはお勧めしません。
ログ
ログに関するConfiguration / コンフィグレーション項目です。
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
に設定します。
slow-query-file
- スロー クエリ ログのファイル名。
- デフォルト値:
tidb-slow.log
- TiDB v2.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]
のプレフィックスを付けてログを出力します。
ログファイル
ログファイルに関するConfiguration / コンフィグレーション項目です。
filename
- 一般ログ ファイルのファイル名。
- デフォルト値: ""
- 設定すると、このファイルにログが出力されます。
max-size
- ログ ファイルのサイズ制限。
- デフォルト値: 300
- 単位:MB
- 最大値は 4096 です。
max-days
- ログが保持される最大日数。
- デフォルト値:
0
- ログはデフォルトで保持されます。値を設定すると、期限切れのログは
max-days
後にクリーンアップされます。
max-backups
- 保持されるログの最大数。
- デフォルト値:
0
- デフォルトでは、すべてのログ ファイルが保持されます。
7
に設定すると、最大 7 つのログ ファイルが保持されます。
安全
セキュリティに関するConfiguration / コンフィグレーション項目です。
enable-sem
- セキュリティ拡張モード (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"
パフォーマンス
性能に関するConfiguration / コンフィグレーション項目です。
max-procs
- TiDB が使用する CPU の数。
- デフォルト値:
0
- デフォルトの
0
は、マシン上のすべての CPU を使用することを示します。 n に設定すると、TiDB は n 個の CPU を使用することもできます。
server-memory-quota
v4.0.9 の新機能
- tidb-server インスタンスのメモリ使用制限。
- デフォルト値:
0
(バイト単位)。これは、メモリ制限がないことを意味します。
memory-usage-alarm-ratio
新機能
- tidb-server インスタンスのメモリ使用量が特定のしきい値を超えると、TiDB はアラームをトリガーします。この構成アイテムの有効な値の範囲は
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 のリスクがあると見なします。したがって、ディレクトリ
tmp-storage-path/record
に現在実行されているすべての SQL ステートメントのうち、メモリ使用量が最も多い 10 個の SQL ステートメント、実行時間が最も長い 10 個の SQL ステートメント、およびヒープ プロファイルを記録し、キーワードtidb-server has the risk of OOM
を含むログを出力します。 - この設定項目の値は、システム変数
tidb_memory_usage_alarm_ratio
の初期値です。
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 はこのリクエストの処理を拒否します。テーブルに大きなサイズの行がある場合、両方の構成を同時に変更する必要があります。
txn-total-size-limit
- TiDB での単一トランザクションのサイズ制限。
- デフォルト値:
104857600
(バイト単位) - 1 回のトランザクションで、キー値レコードの合計サイズがこの値を超えることはできません。このパラメーターの最大値は
1099511627776
(1 TB) です。 binlog を使用してダウンストリーム コンシューマー Kafka (arbiter
クラスターなど) にサービスを提供している場合、このパラメーターの値は1073741824
(1 GB) を超えてはならないことに注意してください。これは、Kafka が処理できる単一のメッセージ サイズの上限が 1 GB であるためです。それ以外の場合、この制限を超えるとエラーが返されます。
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_PRIORITY
、HIGH_PRIORITY
、およびDELAYED
。
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 の新機能
- 統計キャッシュのメモリ クォータを有効にするかどうかを制御します。
- デフォルト値:
false
stats-load-concurrency
v5.4.0 の新機能
- TiDB 同期ロード統計機能が同時に処理できる列の最大数。
- デフォルト値:
5
- 現在、有効な値の範囲は
[1, 128]
です。
stats-load-queue-size
v5.4.0 の新機能
- TiDB 同期読み込み統計機能がキャッシュできる列リクエストの最大数。
- デフォルト値:
1000
- 現在、有効な値の範囲は
[1, 100000]
です。
オープントレース
opentracing に関連するConfiguration / コンフィグレーション項目。
enable
- 一部の TiDB コンポーネントの呼び出しオーバーヘッドを追跡するための opentracing を有効にします。 opentracing を有効にすると、パフォーマンスが低下することに注意してください。
- デフォルト値:
false
rpc-metrics
- RPC メトリックを有効にします。
- デフォルト値:
false
opentracing.sampler
opentracing.sampler に関するConfiguration / コンフィグレーション項目です。
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 に関するConfiguration / コンフィグレーション項目です。
queue-size
- レポーター レコードがメモリ内にまたがるキュー サイズ。
- デフォルト値:
0
buffer-flush-interval
- レポーターがメモリ内のスパンをストレージにフラッシュする間隔。
- デフォルト値:
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 ローカル ラッチ
トランザクション ラッチに関するConfiguration / コンフィグレーション。多くのローカル トランザクションの競合が発生する場合は、有効にすることをお勧めします。
enabled
- トランザクションのメモリ ロックを有効にするかどうかを決定します。
- デフォルト値:
false
capacity
- ハッシュに対応するスロットの数。2 の指数倍数に自動的に調整されます。各スロットは 32 バイトのメモリを占有します。設定が小さすぎると、データの書き込みが比較的広い範囲をカバーするシナリオ (データのインポートなど) で、実行速度が遅くなり、パフォーマンスが低下する可能性があります。
- デフォルト値:
2048000
ビンログ
TiDB Binlogに関連する構成。
enable
- binlog を有効または無効にします。
- デフォルト値:
false
write-timeout
- バイナリログをPumpに書き込む際のタイムアウト。この値を変更することはお勧めしません。
- デフォルト:
15s
- 単位:秒
ignore-error
- binlog をPumpに書き込むプロセスで発生したエラーを無視するかどうかを決定します。この値を変更することはお勧めしません。
- デフォルト値:
false
- 値を
true
に設定してエラーが発生すると、TiDB は binlog の書き込みを停止し、tidb_server_critical_error_total
の監視項目のカウントに1
を追加します。値がfalse
に設定されている場合、binlog の書き込みは失敗し、TiDB サービス全体が停止します。
binlog-socket
- binlog のエクスポート先のネットワーク アドレス。
- デフォルト値: ""
strategy
- バイナリログをエクスポートするときのPump選択の戦略。現在、
hash
とrange
の方法のみがサポートされています。 - デフォルト値:
range
状態
TiDB サービスのステータスに関するConfiguration / コンフィグレーション。
report-status
- HTTP API サービスを有効または無効にします。
- デフォルト値:
true
record-db-qps
- データベース関連の QPS メトリクスを Prometheus に送信するかどうかを決定します。
- デフォルト値:
false
悲観的-txn
悲観的トランザクションの使用法については、 TiDB ペシミスティック トランザクション モードを参照してください。
最大再試行回数
- ペシミスティック トランザクションでの各ステートメントの最大再試行回数。再試行回数がこの制限を超えると、エラーが発生します。
- デフォルト値:
256
デッドロック履歴容量
- 1 つの TiDBサーバーの
INFORMATION_SCHEMA.DEADLOCKS
つのテーブルに記録できるデッドロック イベントの最大数。このテーブルがいっぱいになり、追加のデッドロック イベントが発生した場合、テーブル内の最も古いレコードが削除され、最新のエラーに対応します。 - デフォルト値:
10
- 最小値:
0
- 最大値:
10000
デッドロック履歴収集再試行可能
INFORMATION_SCHEMA.DEADLOCKS
テーブルが再試行可能なデッドロック エラーの情報を収集するかどうかを制御します。再試行可能なデッドロック エラーの説明については、 再試行可能なデッドロック エラーを参照してください。- デフォルト値:
false
悲観的自動コミット (v6.0.0 の新機能)
- ペシミスティック トランザクション モードがグローバルに有効になっている場合 (
tidb_txn_mode='pessimistic'
)、自動コミット トランザクションが使用するトランザクション モードを決定します。デフォルトでは、ペシミスティック トランザクション モードがグローバルに有効になっている場合でも、自動コミット トランザクションは引き続きオプティミスティック トランザクション モードを使用します。pessimistic-auto-commit
を有効にした後 (true
に設定)、自動コミット トランザクションはペシミスティック モードも使用します。これは、他の明示的にコミットされたペシミスティック トランザクションと一致します。 - 競合のあるシナリオでは、この構成を有効にした後、 レイテンシーは自動コミット トランザクションをグローバル ロック待機管理に含めます。
- 競合のないシナリオの場合、多くの自動コミット トランザクションがある場合 (具体的な数は実際のシナリオによって決定されます。たとえば、自動コミット トランザクションの数は、アプリケーションの総数の半分以上を占めます)。 1 つのトランザクションで大量のデータが処理されるため、この構成を有効にするとパフォーマンスが低下します。たとえば、auto-commit
INSERT INTO SELECT
ステートメントです。 - デフォルト値:
false
分離読み取り
読み取り分離に関連するConfiguration / コンフィグレーション項目。
engines
- TiDB がデータの読み取りを許可するエンジンを制御します。
- デフォルト値: ["tikv", "tiflash", "tidb"]。エンジンがオプティマイザによって自動的に選択されることを示します。
- 値のオプション: 「tikv」、「tiflash」、および「tidb」の任意の組み合わせ。たとえば、["tikv", "tidb"] または ["tiflash", "tidb"]
プロキシプロトコル
PROXY プロトコルに関するConfiguration / コンフィグレーション項目です。
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