TiDB Features

This document lists the features supported in different TiDB versions, including Long-Term Support (LTS) versions and Development Milestone Release (DMR) versions after the latest LTS version.

You can try out TiDB features on TiDB Playground.

Data types, functions, and operators

Data types, functions, and operators8.07.67.57.16.56.15.45.35.25.15.04.0
Numeric typesYYYYYYYYYYYY
Date and time typesYYYYYYYYYYYY
String typesYYYYYYYYYYYY
JSON typeYYYYYEEEEEEE
Control flow functionsYYYYYYYYYYYY
String functionsYYYYYYYYYYYY
Numeric functions and operatorsYYYYYYYYYYYY
Date and time functionsYYYYYYYYYYYY
Bit functions and operatorsYYYYYYYYYYYY
Cast functions and operatorsYYYYYYYYYYYY
Encryption and compression functionsYYYYYYYYYYYY
Information functionsYYYYYYYYYYYY
JSON functionsYYYYYEEEEEEE
Aggregation functionsYYYYYYYYYYYY
Window functionsYYYYYYYYYYYY
Miscellaneous functionsYYYYYYYYYYYY
OperatorsYYYYYYYYYYYY
Character sets and collations 1YYYYYYYYYYYY
User-level lockYYYYYYNNNNNN

Indexing and constraints

Indexing and constraints8.07.67.57.16.56.15.45.35.25.15.04.0
Expression indexes 2YYYYYEEEEEEE
Columnar storage (TiFlash)YYYYYYYYYYYY
Use FastScan to accelerate queries in OLAP scenariosYYYYENNNNNNN
RocksDB engineYYYYYYYYYYYY
Titan pluginYYYYYYYYYYYY
Titan Level MergeEEEEEEEEEEEE
Use buckets to improve scan concurrencyEEEEEENNNNNN
Invisible indexesYYYYYYYYYYYN
Composite PRIMARY KEYYYYYYYYYYYYY
CHECK constraintsYYYNNNNNNNNN
Unique indexesYYYYYYYYYYYY
Clustered index on integer PRIMARY KEYYYYYYYYYYYYY
Clustered index on composite or non-integer keyYYYYYYYYYYYN
Multi-valued indexesYYYYNNNNNNNN
Foreign keyEEEENNNNNNNN
TiFlash late materializationYYYYNNNNNNNN

SQL statements

SQL statements 38.07.67.57.16.56.15.45.35.25.15.04.0
Basic SELECT, INSERT, UPDATE, DELETE, REPLACEYYYYYYYYYYYY
INSERT ON DUPLICATE KEY UPDATEYYYYYYYYYYYY
LOAD DATA INFILEYYYYYYYYYYYY
SELECT INTO OUTFILEYYYYYYYYYYYY
INNER JOIN, LEFT|RIGHT [OUTER] JOINYYYYYYYYYYYY
UNION, UNION ALLYYYYYYYYYYYY
EXCEPT and INTERSECT operatorsYYYYYYYYYYYN
GROUP BY, ORDER BYYYYYYYYYYYYY
Window FunctionsYYYYYYYYYYYY
Common Table Expressions (CTE)YYYYYYYYYYNN
START TRANSACTION, COMMIT, ROLLBACKYYYYYYYYYYYY
EXPLAINYYYYYYYYYYYY
EXPLAIN ANALYZEYYYYYYYYYYYY
User-defined variablesEEEEEEEEEEEE
BATCH [ON COLUMN] LIMIT INTEGER DELETEYYYYYYNNNNNN
BATCH [ON COLUMN] LIMIT INTEGER INSERT/UPDATE/REPLACEYYYYYNNNNNNN
ALTER TABLE ... COMPACTYYYYYENNNNNN
Table LockEEEEEEEEEEEE
TiFlash Query Result MaterializationYYYYENNNNNNN

Advanced SQL features

Advanced SQL features8.07.67.57.16.56.15.45.35.25.15.04.0
Prepared statement cacheYYYYYYYYEEEE
Non-prepared statement cacheYYYENNNNNNNN
SQL bindingYYYYYYYYYYYY
Cross-database bindingYYNNNNNNNNNN
Create bindings according to historical execution plansYYYYENNNNNNN
Coprocessor cacheYYYYYYYYYYYE
Stale ReadYYYYYYYYYYNN
Follower readsYYYYYYYYYYYY
Read historical data (tidb_snapshot)YYYYYYYYYYYY
Optimizer hintsYYYYYYYYYYYY
MPP execution engineYYYYYYYYYYYN
MPP execution engine - compression exchangeYYYYNNNNNNNN
TiFlash Pipeline ModelYYYNNNNNNNNN
TiFlash replica selection strategyYYYNNNNNNNNN
Index MergeYYYYYYYEEEEE
Placement Rules in SQLYYYYYYEENNNN
Cascades PlannerEEEEEEEEEEEE
Runtime FilterYYYNNNNNNNNN

Data definition language (DDL)

Data definition language (DDL)8.07.67.57.16.56.15.45.35.25.15.04.0
Basic CREATE, DROP, ALTER, RENAME, TRUNCATEYYYYYYYYYYYY
Generated columnsYYYYEEEEEEEE
ViewsYYYYYYYYYYYY
SequencesYYYYYYYYYYYY
Auto incrementYYYYY4YYYYYYY
Auto randomYYYYYYYYYYYY
TTL (Time to Live)YYYYENNNNNNN
DDL algorithm assertionsYYYYYYYYYYYY
Multi-schema change: add columnsYYYYYEEEEEEE
Change column typeYYYYYYYYYYNN
Temporary tablesYYYYYYYYNNNN
Concurrent DDL statementsYYYYYNNNNNNN
Acceleration of ADD INDEX and CREATE INDEXYYYYYNNNNNNN
Metadata lockYYYYYNNNNNNN
FLASHBACK CLUSTERYYYYYNNNNNNN
Pause/Resume DDLYYYNNNNNNNNN
TiDB Accelerated Table CreationENNNNNNNNNNN
Configure BDR role to replicate DDL statements in BDR modeEENNNNNNNNNN

Transactions

Transactions8.07.67.57.16.56.15.45.35.25.15.04.0
Async commitYYYYYYYYYYYN
1PCYYYYYYYYYYYN
Large transactions (10GB)YYYYYYYYYYYY
Pessimistic transactionsYYYYYYYYYYYY
Optimistic transactionsYYYYYYYYYYYY
Repeatable-read isolation (snapshot isolation)YYYYYYYYYYYY
Read-committed isolationYYYYYYYYYYYY
Automatically terminating long-running idle transactionsYYNNNNNNNNNN

Partitioning

Partitioning8.07.67.57.16.56.15.45.35.25.15.04.0
Range partitioningYYYYYYYYYYYY
Hash partitioningYYYYYYYYYYYY
Key partitioningYYYYNNNNNNNN
List partitioningYYYYYYEEEEEN
List COLUMNS partitioningYYYYYYEEEEEN
Default partition for List and List COLUMNS partitioned tablesYYYNNNNNNNNN
EXCHANGE PARTITIONYYYYYEEEEEEN
REORGANIZE PARTITIONYYYYNNNNNNNN
COALESCE PARTITIONYYYYNNNNNNNN
Dynamic pruningYYYYYYEEEENN
Range COLUMNS partitioningYYYYYNNNNNNN
Range INTERVAL partitioningYYYYENNNNNNN
Convert a partitioned table to a non-partitioned tableYYYNNNNNNNNN
Partition an existing tableYYYNNNNNNNNN

Statistics

Statistics8.07.67.57.16.56.15.45.35.25.15.04.0
CMSketchDisabled by defaultDisabled by defaultDisabled by defaultDisabled by defaultDisabled by defaultDisabled by defaultDisabled by defaultDisabled by defaultYYYY
HistogramsYYYYYYYYYYYY
Extended statisticsEEEEEEEEEEEN
Statistics feedbackNNNNNDeprecatedDeprecatedEEEEE
Automatically update statisticsYYYYYYYYYYYY
Dynamic pruningYYYYYYEEEENN
Collect statistics for PREDICATE COLUMNSEEEEEEENNNNN
Control the memory quota for collecting statisticsEEEEENNNNNNN
Randomly sample about 10000 rows of data to quickly build statisticsDeprecatedDeprecatedDeprecatedEEEEEEEEE
Lock statisticsYYYEENNNNNNN
Lightweight statistics initializationYYYENNNNNNNN
Show the progress of collecting statisticsYYYNNNNNNNNN

Security

Security8.07.67.57.16.56.15.45.35.25.15.04.0
Transparent layer security (TLS)YYYYYYYYYYYY
Encryption at rest (TDE)YYYYYYYYYYYY
Role-based authentication (RBAC)YYYYYYYYYYYY
Certificate-based authenticationYYYYYYYYYYYY
caching_sha2_password authenticationYYYYYYYYYNNN
tidb_sm3_password authenticationYYYYYNNNNNNN
tidb_auth_token authenticationYYYYYNNNNNNN
authentication_ldap_sasl authenticationYYYNNNNNNNN
authentication_ldap_simple authenticationYYYYNNNNNNNN
Password managementYYYYYNNNNNNN
MySQL compatible GRANT systemYYYYYYYYYYYY
Dynamic PrivilegesYYYYYYYYYYNN
Security Enhanced ModeYYYYYYYYYYNN
Redacted Log FilesYYYYYYYYYYYN

Data import and export

Data import and export8.07.67.57.16.56.15.45.35.25.15.04.0
Fast import using TiDB LightningYYYYYYYYYYYY
Fast import using the IMPORT INTO statementYYYNNNNNNNNN
mydumper logical dumperDeprecatedDeprecatedDeprecatedDeprecatedDeprecatedDeprecatedDeprecatedDeprecatedDeprecatedDeprecatedDeprecatedDeprecated
Dumpling logical dumperYYYYYYYYYYYY
Transactional LOAD DATA 5YYYYYYYYYYYN 6
Database migration toolkit (DM)YYYYYYYYYYYY
TiDB Binlog 7YYYYYYYYYYYY
Change data capture (CDC)YYYYYYYYYYYY
Stream data to Amazon S3, GCS, Azure Blob Storage, and NFS through TiCDCYYYYENNNNNNN
TiCDC supports bidirectional replication between two TiDB clustersYYYYYNNNNNNN
TiCDC OpenAPI v2YYYYNNNNNNNN
DM supports migrating MySQL 8.0YYEEEENNNNNN

Management, observability, and tools

Management, observability, and tools8.07.67.57.16.56.15.45.35.25.15.04.0
TiDB Dashboard UIYYYYYYYYYYYY
TiDB Dashboard Continuous ProfilingYYYYYYEENNNN
TiDB Dashboard Top SQLYYYYYYENNNNN
TiDB Dashboard SQL DiagnosticsYYYYYEEEEEEE
TiDB Dashboard Cluster DiagnosticsYYYYYEEEEEEE
TiKV-FastTune dashboardEEEEEEEEEEEE
Information schemaYYYYYYYYYYYY
Metrics schemaYYYYYYYYYYYY
Statements summary tablesYYYYYYYYYYYY
Statements summary tables - summary persistenceEEEENNNNNNNN
Slow query logYYYYYYYYYYYY
TiUP deploymentYYYYYYYYYYYY
Kubernetes operatorYYYYYYYYYYYY
Built-in physical backupYYYYYYYYYYYY
Global KillYYYYYYEEEEEE
Lock ViewYYYYYYYYYEEE
SHOW CONFIGYYYYYYYYYYYY
SET CONFIGYYYYYYEEEEEE
DM WebUIEEEEEENNNNNN
Foreground Quota LimiterYYYYYENNNNNN
Background Quota LimiterEEEEENNNNNNN
EBS volume snapshot backup and restoreYYYYYNNNNNNN
PITRYYYYYNNNNNNN
Global memory controlYYYYYNNNNNNN
Cross-cluster RawKV replicationEEEEENNNNNNN
Green GCEEEEEEEEEEEN
Resource controlYYYYNNNNNNNN
Runaway Queries managementEEENNNNNNNNN
Background tasks managementEEENNNNNNNNN
TiFlash Disaggregated Storage and Compute Architecture and S3 SupportYYYENNNNNNNN
Selecting TiDB nodes for the Distributed eXecution Framework (DXF) tasksYYYNNNNNNNNN
PD Follower Proxy (controlled by tidb_enable_tso_follower_proxy)YYYYYYYYNNNN
Active PD Follower (controlled by pd_enable_follower_handle_region)EENNNNNNNNNN
PD microservicesENNNNNNNNNNN
TiDB Distributed eXecution Framework (DXF)YYYENNNNNNNN
Global SortYEENNNNNNNNN

  1. TiDB incorrectly treats latin1 as a subset of utf8. See TiDB #18955 for more details.
  2. Starting from v6.5.0, the expression indexes created on the functions listed by the tidb_allow_function_for_expression_index system variable have been tested and can be used in production environments, and more functions will be supported in the future releases. For functions not listed by this variable, the corresponding expression indexes are not recommended for use in production environments. See expression indexes for details.
  3. See Statement Reference for a full list of SQL statements supported.
  4. Starting from v6.4.0, TiDB supports high-performance and globally monotonic AUTO_INCREMENT columns
  5. Starting from TiDB v7.5.0, technical support for the data replication feature of TiDB Binlog is no longer provided. It is strongly recommended to use TiCDC as an alternative solution for data replication. Although TiDB Binlog v7.5.0 still supports the Point-in-Time Recovery (PITR) scenario, this component will be completely deprecated in future versions. It is recommended to use PITR as an alternative solution for data recovery.
  6. For TiDB v4.0, the LOAD DATA transaction does not guarantee atomicity.
  7. Starting from TiDB v7.0.0, the new parameter FIELDS DEFINED NULL BY and support for importing data from S3 and GCS are experimental features. Starting from v7.6.0, TiDB processes LOAD DATA in transactions in the same way as MySQL. The LOAD DATA statement in a transaction no longer automatically commits the current transaction or starts a new transaction. Moreover, you can explicitly commit or roll back the LOAD DATA statement in a transaction. Additionally, the LOAD DATA statement is affected by the TiDB transaction mode setting (optimistic or pessimistic transaction).