Release date: June 28, 2019
TiDB version: 3.0.0
TiDB Ansible version: 3.0.0
On June 28, 2019, TiDB 3.0 GA is released. The corresponding TiDB Ansible version is 3.0.0. Compared with TiDB 2.1, this release has greatly improved in the following aspects:
EXPLAIN ANALYZE
and SQL Trace to save operation costs for users.SQL Plan Management
.NTILE
, LEAD
, LAG
, PERCENT_RANK
, NTH_VALUE
, CUME_DIST
, FIRST_VALUE
, LAST_VALUE
, RANK
, DENSE_RANK
, and ROW_NUMBER
NOT EXISTS
subquery and convert it to Anti Semi Join
to improve performanceOuter Join
, and add the optimization rule of Outer Join
elimination to reduce non-effective computations and improve performanceIN
subquery to execute Inner Join
after aggregation to improve performanceIndex Join
to adapt to more scenarios_tidb_rowid
to avoid full table scan and improve performanceJoin Order
based on the greedy strategy and the dynamic programming algorithm to speed up the join operation of multiple tablesFAST ANALYZE
that randomly samples in each Region to avoid full table scan and improve performance with statistics collectionDO
statementIndex Join
in transactionsprepare
/execute
to support DDL statements with no parametersstats-lease
variable value is 0dump
/load
correlation of histogramsEXECUTE
outputs user variables and COMMIT
outputs slow query logs to facilitate troubleshootingEXPLAIN ANALYZE
function to improve SQL tuning usabilityadmin show next_row_id
command to get the ID of the next rowJSON_QUOTE
, JSON_ARRAY_APPEND
, JSON_MERGE_PRESERVE
, BENCHMARK
,COALESCE
, and NAME_CONST
TableReader
, IndexReader
and IndexLookupReader
ON
conditionadmin show ddl jobs
by supporting scanning data in reverse ordersplit table region
statement to manually split the table Region to alleviate hotspot issuessplit index region
statement to manually split the index Region to alleviate hotspot issuesExpensive Query
log to print the SQL query in the log when it exceeds the configured limit of execution time or memoryutf8
to utf8mb4
utf8
to utf8mb4
alter schema
statement to modify the character set and the collation of the databaseINPLACE
/INSTANT
SHOW CREATE VIEW
SHOW CREATE USER
pre_split_regions
option that pre-allocates Regions when creating the table using the CREATE TABLE
statement, to relieve write hot Regions caused by lots of writes after the table creationddl_error_count_limit
global variable to limit the number of DDL task retriesSHARD_ROW_ID_BITS
to scatter row IDs when the column contains an AUTO_INCREMENT attribute to relieve hotspot issuestidb_disable_txn_auto_retry
to on
, which means non-auto committed transactions will not be retriedtidb_batch_commit
system variable to split a transaction into multiple ones to be executed concurrentlytidb_low_resolution_tso
system variable to control the number of TSOs to obtain in batches and reduce the number of times that transactions request for TSOs, to improve performance in scenarios with relatively low requirement of consistencytidb_skip_isolation_level_check
variable to control whether to report errors when the isolation level is set to SERIALIZABLEtidb_disable_txn_auto_retry
system variable to make it work on all retryable errorsANALYZE
, USE
, SET GLOBAL
, and SHOW PROCESSLIST
statementsINFORMATION_SCHEMA.SLOW_QUERY
and ADMIN SHOW SLOW
statements of the memory table to query slow query logsunix_socket
to connect to the databaseTrace
for SQL statements/debug/zip
HTTP interface to facilitate troubleshooting.high_error_rate_feedback_total
monitoring item to monitor the difference between the actual data volume and the estimated data volume based on statisticskill query
to improve performance and ensure resource is release properlyconfig-check
to check the validity of the configuration filetidb_back_off_weight
system variable to control the backoff time of internal error retrieswait_timeout
and interactive_timeout
system variables to control the maximum idle connections allowedALLOW_INVALID_DATES
SQL modeSHOW CREATE DATABASE IF NOT EXISTS
syntaxload data
for CSV filesMigrate Region metadata from etcd to the go-leveldb storage engine to solve the storage bottleneck in etcd for large-scale clusters
API
remove-tombstone
API to clear Tombstone storesScanRegions
API to batch query Region informationGetOperator
API to query running operatorsGetStores
APIConfigurations
enable-two-way-merge
to control the direction of Region mergehot-region-schedule-limit
to control the scheduling rate for hot Regionshot-region-cache-hits-threshold
to identify hotspot when hitting multiple thresholds consecutivelystore-balance-rate
configuration item to control the maximum numbers of balance Region operators allowed per minuteScheduler Optimizations
waitingOperator
queue to optimize the resource race among different schedulersRegion Scatter
scheduling to be not restrained by the limit mechanismshuffle-hot-region
scheduler to facilitate TiKV stability test in scenarios of poor hotspot schedulingSimulator
Others
raw_scan
and raw_batch_scan
Insert
to allow Prewrite to succeed only when there is no KeySupport Local Reader in RawKV to improve performance
Engine
Iterator Key Bound Option
block cache
sharing among different column familiesServer
batch commands
txn scheduler
read index
and GC worker
RaftStore
Coprocessor
EXPLAIN ANALYZE
statement in TiDBwork-stealing
thread pool model to reduce context switch costrow_id
or the default column value when column data is missing in the new fileTIKV-importer
when uploading SST files to TiKVadvertise-addr
configuration in Drainer to support the bridge mode in the container environmentGetMvccByEncodeKey
function in Pump to speed up querying the transaction statussyncer.sql-mode
configuration item to support using different sql-modes to parse DDL queriessyncer.ignore-table
configuration item to support filtering tables not to be replicatedonly-use-checksum
configuration item to check data consistency by calculating checksumtable-regions.py
script to support displaying Leader distribution by tables