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 operators7.67.57.16.56.15.45.35.25.15.04.0
Numeric typesYYYYYYYYYYY
Date and time typesYYYYYYYYYYY
String typesYYYYYYYYYYY
JSON typeYYYYEEEEEEE
Control flow functionsYYYYYYYYYYY
String functionsYYYYYYYYYYY
Numeric functions and operatorsYYYYYYYYYYY
Date and time functionsYYYYYYYYYYY
Bit functions and operatorsYYYYYYYYYYY
Cast functions and operatorsYYYYYYYYYYY
Encryption and compression functionsYYYYYYYYYYY
Information functionsYYYYYYYYYYY
JSON functionsYYYYEEEEEEE
Aggregation functionsYYYYYYYYYYY
Window functionsYYYYYYYYYYY
Miscellaneous functionsYYYYYYYYYYY
OperatorsYYYYYYYYYYY
Character sets and collations 1YYYYYYYYYYY
User-level lockYYYYYNNNNNN

Indexing and constraints

Indexing and constraints7.67.57.16.56.15.45.35.25.15.04.0
Expression indexes 2YYYYEEEEEEE
Columnar storage (TiFlash)YYYYYYYYYYY
Use FastScan to accelerate queries in OLAP scenariosYYYENNNNNNN
RocksDB engineYYYYYYYYYYY
Titan pluginYYYYYYYYYYY
Titan Level MergeEEEEEEEEEEE
Use buckets to improve scan concurrencyEEEEENNNNNN
Invisible indexesYYYYYYYYYYN
Composite PRIMARY KEYYYYYYYYYYYY
CHECK constraintsYYNNNNNNNNN
Unique indexesYYYYYYYYYYY
Clustered index on integer PRIMARY KEYYYYYYYYYYYY
Clustered index on composite or non-integer keyYYYYYYYYYYN
Multi-valued indexesYYYNNNNNNNN
Foreign keyEEENNNNNNNN
TiFlash late materializationYYYNNNNNNNN

SQL statements

SQL statements 37.67.57.16.56.15.45.35.25.15.04.0
Basic SELECT, INSERT, UPDATE, DELETE, REPLACEYYYYYYYYYYY
INSERT ON DUPLICATE KEY UPDATEYYYYYYYYYYY
LOAD DATA INFILEYYYYYYYYYYY
SELECT INTO OUTFILEYYYYYYYYYYY
INNER JOIN, LEFT|RIGHT [OUTER] JOINYYYYYYYYYYY
UNION, UNION ALLYYYYYYYYYYY
EXCEPT and INTERSECT operatorsYYYYYYYYYYN
GROUP BY, ORDER BYYYYYYYYYYYY
Window FunctionsYYYYYYYYYYY
Common Table Expressions (CTE)YYYYYYYYYNN
START TRANSACTION, COMMIT, ROLLBACKYYYYYYYYYYY
EXPLAINYYYYYYYYYYY
EXPLAIN ANALYZEYYYYYYYYYYY
User-defined variablesEEEEEEEEEEE
BATCH [ON COLUMN] LIMIT INTEGER DELETEYYYYYNNNNNN
BATCH [ON COLUMN] LIMIT INTEGER INSERT/UPDATE/REPLACEYYYYNNNNNNN
ALTER TABLE ... COMPACTYYYYENNNNNN
Table LockEEEEEEEEEEE
TiFlash Query Result MaterializationYYYENNNNNNN

Advanced SQL features

Advanced SQL features7.67.57.16.56.15.45.35.25.15.04.0
Prepared statement cacheYYYYYYYEEEE
Non-prepared statement cacheYYENNNNNNNN
SQL bindingYYYYYYYYYYY
Cross-database bindingYNNNNNNNNNN
Create bindings according to historical execution plansYYYENNNNNNN
Coprocessor cacheYYYYYYYYYYE
Stale ReadYYYYYYYYYNN
Follower readsYYYYYYYYYYY
Read historical data (tidb_snapshot)YYYYYYYYYYY
Optimizer hintsYYYYYYYYYYY
MPP execution engineYYYYYYYYYYN
MPP execution engine - compression exchangeYYYNNNNNNNN
TiFlash Pipeline ModelYYNNNNNNNNN
TiFlash replica selection strategyYYNNNNNNNNN
Index MergeYYYYYYEEEEE
Placement Rules in SQLYYYYYEENNNN
Cascades PlannerEEEEEEEEEEE
Runtime FilterYYNNNNNNNNN

Data definition language (DDL)

Data definition language (DDL)7.67.57.16.56.15.45.35.25.15.04.0
Basic CREATE, DROP, ALTER, RENAME, TRUNCATEYYYYYYYYYYY
Generated columnsYYYEEEEEEEE
ViewsYYYYYYYYYYY
SequencesYYYYYYYYYYY
Auto incrementYYYY4YYYYYYY
Auto randomYYYYYYYYYYY
TTL (Time to Live)YYYENNNNNNN
DDL algorithm assertionsYYYYYYYYYYY
Multi-schema change: add columnsYYYYEEEEEEE
Change column typeYYYYYYYYYNN
Temporary tablesYYYYYYYNNNN
Concurrent DDL statementsYYYYNNNNNNN
Acceleration of ADD INDEX and CREATE INDEXYYYYNNNNNNN
Metadata lockYYYYNNNNNNN
FLASHBACK CLUSTERYYYYNNNNNNN
Pause/Resume DDLYYNNNNNNNNN
TiDB DDL V2ENNNNNNNNNN

Transactions

Transactions7.67.57.16.56.15.45.35.25.15.04.0
Async commitYYYYYYYYYYN
1PCYYYYYYYYYYN
Large transactions (10GB)YYYYYYYYYYY
Pessimistic transactionsYYYYYYYYYYY
Optimistic transactionsYYYYYYYYYYY
Repeatable-read isolation (snapshot isolation)YYYYYYYYYYY
Read-committed isolationYYYYYYYYYYY
Automatically terminating long-running idle transactionsYNNNNNNNNNN

Partitioning

Partitioning7.67.57.16.56.15.45.35.25.15.04.0
Range partitioningYYYYYYYYYYY
Hash partitioningYYYYYYYYYYY
Key partitioningYYYNNNNNNNN
List partitioningYYYYYEEEEEN
List COLUMNS partitioningYYYYYEEEEEN
Default partition for List and List COLUMNS partitioned tablesYYNNNNNNNNN
EXCHANGE PARTITIONYYYYEEEEEEN
REORGANIZE PARTITIONYYYNNNNNNNN
COALESCE PARTITIONYYYNNNNNNNN
Dynamic pruningYYYYYEEEENN
Range COLUMNS partitioningYYYYNNNNNNN
Range INTERVAL partitioningYYYENNNNNNN
Convert a partitioned table to a non-partitioned tableYYNNNNNNNNN
Partition an existing tableYYNNNNNNNNN

Statistics

Statistics7.67.57.16.56.16.05.45.35.25.15.0
CMSketchDisabled by defaultDisabled by defaultDisabled by defaultDisabled by defaultDisabled by defaultDisabled by defaultDisabled by defaultDisabled by defaultYYY
HistogramsYYYYYYYYYYY
Extended statisticsEEEEEEEEEEE
Statistics feedbackNNNNDeprecatedDeprecatedDeprecatedEEEE
Automatically update statisticsYYYYYYYYYYY
Dynamic pruningYYYYYEEEEEN
Collect statistics for PREDICATE COLUMNSEEEEEEENNNN
Control the memory quota for collecting statisticsEEEEENNNNNN
Randomly sample about 10000 rows of data to quickly build statisticsDeprecatedDeprecatedEEEEEEEEE
Lock statisticsYYEENNNNNNN
Lightweight statistics initializationYYENNNNNNNN
Show the progress of collecting statisticsYYNNNNNNNNN

Security

Security7.67.57.16.56.15.45.35.25.15.04.0
Transparent layer security (TLS)YYYYYYYYYYY
Encryption at rest (TDE)YYYYYYYYYYY
Role-based authentication (RBAC)YYYYYYYYYYY
Certificate-based authenticationYYYYYYYYYYY
caching_sha2_password authenticationYYYYYYYYNNN
tidb_sm3_password authenticationYYYYNNNNNNN
tidb_auth_token authenticationYYYYNNNNNNN
authentication_ldap_sasl authenticationYYNNNNNNNN
authentication_ldap_simple authenticationYYYNNNNNNNN
Password managementYYYYNNNNNNN
MySQL compatible GRANT systemYYYYYYYYYYY
Dynamic PrivilegesYYYYYYYYYNN
Security Enhanced ModeYYYYYYYYYNN
Redacted Log FilesYYYYYYYYYYN

Data import and export

Data import and export7.67.57.16.56.15.45.35.25.15.04.0
Fast import using TiDB LightningYYYYYYYYYYY
Fast import using the IMPORT INTO statementYYNNNNNNNNN
mydumper logical dumperDeprecatedDeprecatedDeprecatedDeprecatedDeprecatedDeprecatedDeprecatedDeprecatedDeprecatedDeprecatedDeprecated
Dumpling logical dumperYYYYYYYYYYY
Transactional LOAD DATA 5YYYYYYYYYYN 6
Database migration toolkit (DM)YYYYYYYYYYY
TiDB Binlog 7YYYYYYYYYYY
Change data capture (CDC)YYYYYYYYYYY
Stream data to Amazon S3, GCS, Azure Blob Storage, and NFS through TiCDCYYYENNNNNNN
TiCDC supports bidirectional replication between two TiDB clustersYYYYNNNNNNN
TiCDC OpenAPI v2YYYNNNNNNNN
DM supports migrating MySQL 8.0YEEEENNNNNN

Management, observability, and tools

Management, observability, and tools7.67.57.16.56.15.45.35.25.15.04.0
TiDB Dashboard UIYYYYYYYYYYY
TiDB Dashboard Continuous ProfilingYYYYYEENNNN
TiDB Dashboard Top SQLYYYYYENNNNN
TiDB Dashboard SQL DiagnosticsYYYYEEEEEEE
TiDB Dashboard Cluster DiagnosticsYYYYEEEEEEE
TiKV-FastTune dashboardEEEEEEEEEEE
Information schemaYYYYYYYYYYY
Metrics schemaYYYYYYYYYYY
Statements summary tablesYYYYYYYYYYY
Statements summary tables - summary persistenceEEENNNNNNNN
Slow query logYYYYYYYYYYY
TiUP deploymentYYYYYYYYYYY
Kubernetes operatorYYYYYYYYYYY
Built-in physical backupYYYYYYYYYYY
Global KillYYYYYEEEEEE
Lock ViewYYYYYYYYEEE
SHOW CONFIGYYYYYYYYYYY
SET CONFIGYYYYYEEEEEE
DM WebUIEEEEENNNNNN
Foreground Quota LimiterYYYYENNNNNN
Background Quota LimiterEEEENNNNNNN
EBS volume snapshot backup and restoreYYYYNNNNNNN
PITRYYYYNNNNNNN
Global memory controlYYYYNNNNNNN
Cross-cluster RawKV replicationEEEENNNNNNN
Green GCEEEEEEEEEEN
Resource controlYYYNNNNNNNN
Runaway Queries managementEENNNNNNNNN
Background tasks managementEENNNNNNNNN
TiFlash Disaggregated Storage and Compute Architecture and S3 SupportYYENNNNNNNN
Selecting TiDB nodes for the Distributed eXecution Framework (DXF) tasksYYNNNNNNNNN
PD Follower Proxy (controlled by tidb_enable_tso_follower_proxy)YYYYYYYNNNN
Active PD Follower (controlled by pd_enable_follower_handle_region)ENNNNNNNNNN

  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).