# TiDB Configuration. # TiDB server host. host = "0.0.0.0" # tidb server advertise IP. advertise-address = "" # TiDB server port. port = 4000 # Registered store name, [tikv, mocktikv] store = "mocktikv" # TiDB storage path. path = "/tmp/tidb" # The socket file to use for connection. socket = "" # Run ddl worker on this tidb-server. run-ddl = true # Schema lease duration, very dangerous to change only if you know what you do. lease = "45s" # When create table, split a separated region for it. It is recommended to # turn off this option if there will be a large number of tables created. split-table = true # The limit of concurrent executed sessions. token-limit = 1000 # Set the memory quota for a query in bytes. Default: 32GB mem-quota-query = 34359738368 # Set to true to enable use of temporary disk for some executors when mem-quota-query is exceeded. oom-use-tmp-storage = true # What to do when mem-quota-query is exceeded and can not be spilled over to disk any more. # Valid options: ["log", "cancel"] oom-action = "log" # Enable coprocessor streaming. enable-streaming = false # Enable batch commit for the DMLs. enable-batch-dml = false # Set system variable 'lower_case_table_names' lower-case-table-names = 2 # Make "kill query" behavior compatible with MySQL. It's not recommend to # turn on this option when TiDB server is behind a proxy. compatible-kill-query = false # check mb4 value in utf8 is used to control whether to check the mb4 characters when the charset is utf8. check-mb4-value-in-utf8 = true # treat-old-version-utf8-as-utf8mb4 use for upgrade compatibility. Set to true will treat old version table/column UTF8 charset as UTF8MB4. treat-old-version-utf8-as-utf8mb4 = true # enable-table-lock is used to control table lock feature. Default is false, indicate the table lock feature is disabled. enable-table-lock = false # delay-clean-table-lock is used to control the time (Milliseconds) of delay before unlock the table in the abnormal situation. delay-clean-table-lock = 0 # Maximum number of the splitting region, which is used by the split region statement. split-region-max-num = 1000 [log] # Log level: debug, info, warn, error, fatal. level = "info" # Log format, one of json, text, console. format = "text" # Enable automatic timestamps in log output, if not set, it will be defaulted to true. # enable-timestamp = true # Enable annotating logs with the full stack error message, if not set, it will be defaulted to false. # enable-error-stack = false # Stores slow query log into separated files. slow-query-file = "tidb-slow.log" # Queries with execution time greater than this value will be logged. (Milliseconds) slow-threshold = 300 # record-plan-in-slow-log is used to enable record query plan in slow log. # 0 is disable. 1 is enable. record-plan-in-slow-log = 1 # Queries with internal result greater than this value will be logged. expensive-threshold = 10000 # Maximum query length recorded in log. query-log-max-len = 4096 # File logging. [log.file] # Log file name. filename = "" # Max log file size in MB (upper limit to 4096MB). max-size = 300 # Max log file keep days. No clean up by default. max-days = 0 # Maximum number of old log files to retain. No clean up by default. max-backups = 0 [security] # Path of file that contains list of trusted SSL CAs for connection with mysql client. ssl-ca = "" # Path of file that contains X509 certificate in PEM format for connection with mysql client. ssl-cert = "" # Path of file that contains X509 key in PEM format for connection with mysql client. ssl-key = "" # Path of file that contains list of trusted SSL CAs for connection with cluster components. cluster-ssl-ca = "" # Path of file that contains X509 certificate in PEM format for connection with cluster components. cluster-ssl-cert = "" # Path of file that contains X509 key in PEM format for connection with cluster components. cluster-ssl-key = "" [status] # If enable status report HTTP service. report-status = true # TiDB status host. status-host = "0.0.0.0" ## status-host is the HTTP address for reporting the internal status of a TiDB server, for example: ## API for prometheus: http://${status-host}:${status_port}/metrics ## API for pprof: http://${status-host}:${status_port}/debug/pprof # TiDB status port. status-port = 10080 # Prometheus pushgateway address, leaves it empty will disable push to pushgateway. metrics-addr = "" # Prometheus client push interval in second, set \"0\" to disable push to pushgateway. metrics-interval = 15 # Record statements qps by database name if it is enabled. record-db-qps = false [performance] # Max CPUs to use, 0 use number of CPUs in the machine. max-procs = 0 # Max memory size to use, 0 use the total usable memory in the machine. max-memory = 0 # StmtCountLimit limits the max count of statement inside a transaction. stmt-count-limit = 5000 # Set keep alive option for tcp connection. tcp-keep-alive = true # Whether support cartesian product. cross-join = true # Stats lease duration, which influences the time of analyze and stats load. stats-lease = "3s" # Run auto analyze worker on this tidb-server. run-auto-analyze = true # Probability to use the query feedback to update stats, 0.0 or 1.0 for always false/true. feedback-probability = 0.05 # The max number of query feedback that cache in memory. query-feedback-limit = 1024 # Pseudo stats will be used if the ratio between the modify count and # row count in statistics of a table is greater than it. pseudo-estimate-ratio = 0.8 # Force the priority of all statements in a specified priority. # The value could be "NO_PRIORITY", "LOW_PRIORITY", "HIGH_PRIORITY" or "DELAYED". force-priority = "NO_PRIORITY" # Bind info lease duration, which influences the duration of loading bind info and handling invalid bind. bind-info-lease = "3s" # The limitation of the size in byte for the entries in one transaction. # If using TiKV as the storage, the entry represents a key/value pair. # WARNING: Do not set the value too large, otherwise it will make a very large impact on the TiKV cluster. # Please adjust this configuration carefully. txn-total-size-limit = 104857600 [proxy-protocol] # PROXY protocol acceptable client networks. # Empty string means disable PROXY protocol, * means all networks. networks = "" # PROXY protocol header read timeout, unit is second header-timeout = 5 [prepared-plan-cache] enabled = false capacity = 100 memory-guard-ratio = 0.1 [opentracing] # Enable opentracing. enable = false # Whether to enable the rpc metrics. rpc-metrics = false [opentracing.sampler] # Type specifies the type of the sampler: const, probabilistic, rateLimiting, or remote type = "const" # Param is a value passed to the sampler. # Valid values for Param field are: # - for "const" sampler, 0 or 1 for always false/true respectively # - for "probabilistic" sampler, a probability between 0 and 1 # - for "rateLimiting" sampler, the number of spans per second # - for "remote" sampler, param is the same as for "probabilistic" # and indicates the initial sampling rate before the actual one # is received from the mothership param = 1.0 # SamplingServerURL is the address of jaeger-agent's HTTP sampling server sampling-server-url = "" # MaxOperations is the maximum number of operations that the sampler # will keep track of. If an operation is not tracked, a default probabilistic # sampler will be used rather than the per operation specific sampler. max-operations = 0 # SamplingRefreshInterval controls how often the remotely controlled sampler will poll # jaeger-agent for the appropriate sampling strategy. sampling-refresh-interval = 0 [opentracing.reporter] # QueueSize controls how many spans the reporter can keep in memory before it starts dropping # new spans. The queue is continuously drained by a background go-routine, as fast as spans # can be sent out of process. queue-size = 0 # BufferFlushInterval controls how often the buffer is force-flushed, even if it's not full. # It is generally not useful, as it only matters for very low traffic services. buffer-flush-interval = 0 # LogSpans, when true, enables LoggingReporter that runs in parallel with the main reporter # and logs all submitted spans. Main Configuration.Logger must be initialized in the code # for this option to have any effect. log-spans = false # LocalAgentHostPort instructs reporter to send spans to jaeger-agent at this address local-agent-host-port = "" [tikv-client] # Max gRPC connections that will be established with each tikv-server. grpc-connection-count = 4 # After a duration of this time in seconds if the client doesn't see any activity it pings # the server to see if the transport is still alive. grpc-keepalive-time = 10 # After having pinged for keepalive check, the client waits for a duration of Timeout in seconds # and if no activity is seen even after that the connection is closed. grpc-keepalive-timeout = 3 # Max time for commit command, must be twice bigger than raft election timeout. commit-timeout = "41s" # Max batch size in gRPC. max-batch-size = 128 # Overload threshold of TiKV. overload-threshold = 200 # Max batch wait time in nanosecond to avoid waiting too long. 0 means disable this feature. max-batch-wait-time = 0 # Batch wait size, to avoid waiting too long. batch-wait-size = 8 # Enable chunk encoded data for coprocessor requests. enable-chunk-rpc = true # If a Region has not been accessed for more than the given duration (in seconds), it # will be reloaded from the PD. region-cache-ttl = 600 [txn-local-latches] # Enable local latches for transactions. Enable it when # there are lots of conflicts between transactions. enabled = false capacity = 2048000 [binlog] # enable to write binlog. enable = false # WriteTimeout specifies how long it will wait for writing binlog to pump. write-timeout = "15s" # If IgnoreError is true, when writing binlog meets error, TiDB would stop writing binlog, # but still provide service. ignore-error = false # use socket file to write binlog, for compatible with kafka version tidb-binlog. binlog-socket = "" # the strategy for sending binlog to pump, value can be "range" or "hash" now. strategy = "range" [pessimistic-txn] # enable pessimistic transaction. enable = true # max retry count for a statement in a pessimistic transaction. max-retry-count = 256 [stmt-summary] # max number of statements kept in memory. max-stmt-count = 100 # max length of displayed normalized sql and sample sql. max-sql-length = 4096