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.

Features - 图1

Note

PingCAP does not provide patch releases for DMR versions. Any bugs will be fixed in future releases. For general purposes, it is recommended to use the latest LTS version.

The abbreviations in the table below have the following meanings:

  • Y: the feature is generally available (GA) and can be used in production environments. Note that even if a feature is GA in a DMR version, it is recommended to use the feature in production environments in a later LTS version.
  • N: the feature is not supported.
  • E: the feature is not GA yet (experimental) and you need to be aware of the usage limitations. Experimental features are subject to change or removal without prior notice. The syntax and implementation might be modified before the general availability. If you encounter any problems, you can report an issue on GitHub.

Data types, functions, and operators

Data types, functions, and operators8.17.57.16.56.15.45.35.25.1
Numeric typesYYYYYYYYY
Date and time typesYYYYYYYYY
String typesYYYYYYYYY
JSON typeYYYYEEEEE
Control flow functionsYYYYYYYYY
String functionsYYYYYYYYY
Numeric functions and operatorsYYYYYYYYY
Date and time functionsYYYYYYYYY
Bit functions and operatorsYYYYYYYYY
Cast functions and operatorsYYYYYYYYY
Encryption and compression functionsYYYYYYYYY
Information functionsYYYYYYYYY
JSON functionsYYYYEEEEE
Aggregation functionsYYYYYYYYY
Window functionsYYYYYYYYY
Miscellaneous functionsYYYYYYYYY
OperatorsYYYYYYYYY
Character sets and collations 1YYYYYYYYY
User-level lockYYYYYNNNN

Indexing and constraints

Indexing and constraints8.17.57.16.56.15.45.35.25.1
Expression indexes 2YYYYEEEEE
Columnar storage (TiFlash)YYYYYYYYY
Use FastScan to accelerate queries in OLAP scenariosYYYENNNNN
RocksDB engineYYYYYYYYY
Titan pluginYYYYYYYYY
Titan Level MergeEEEEEEEEE
Use buckets to improve scan concurrencyEEEEENNNN
Invisible indexesYYYYYYYYY
Composite PRIMARY KEYYYYYYYYYY
CHECK constraintsYYNNNNNNN
Unique indexesYYYYYYYYY
Clustered index on integer PRIMARY KEYYYYYYYYYY
Clustered index on composite or non-integer keyYYYYYYYYY
Multi-valued indexesYYYNNNNNN
Foreign keyEEENNNNNN
TiFlash late materializationYYYNNNNNN

SQL statements

SQL statements 38.17.57.16.56.15.45.35.25.1
Basic SELECT, INSERT, UPDATE, DELETE, REPLACEYYYYYYYYY
INSERT ON DUPLICATE KEY UPDATEYYYYYYYYY
LOAD DATA INFILEYYYYYYYYY
SELECT INTO OUTFILEYYYYYYYYY
INNER JOIN, LEFT|RIGHT [OUTER] JOINYYYYYYYYY
UNION, UNION ALLYYYYYYYYY
EXCEPT and INTERSECT operatorsYYYYYYYYY
GROUP BY, ORDER BYYYYYYYYYY
Window FunctionsYYYYYYYYY
Common Table Expressions (CTE)YYYYYYYYY
START TRANSACTION, COMMIT, ROLLBACKYYYYYYYYY
EXPLAINYYYYYYYYY
EXPLAIN ANALYZEYYYYYYYYY
User-defined variablesEEEEEEEEE
BATCH [ON COLUMN] LIMIT INTEGER DELETEYYYYYNNNN
BATCH [ON COLUMN] LIMIT INTEGER INSERT/UPDATE/REPLACEYYYYNNNNN
ALTER TABLE … COMPACTYYYYENNNN
Table LockEEEEEEEEE
TiFlash Query Result MaterializationYYYENNNNN

Advanced SQL features

Advanced SQL features8.17.57.16.56.15.45.35.25.1
Prepared statement cacheYYYYYYYEE
Non-prepared statement cacheYYENNNNNN
SQL bindingYYYYYYYYY
Cross-database bindingYNNNNNNNN
Create bindings according to historical execution plansYYYENNNNN
Coprocessor cacheYYYYYYYYY
Stale ReadYYYYYYYYY
Follower readsYYYYYYYYY
Read historical data (tidb_snapshot)YYYYYYYYY
Optimizer hintsYYYYYYYYY
MPP execution engineYYYYYYYYY
MPP execution engine - compression exchangeYYYNNNNNN
TiFlash Pipeline ModelYYNNNNNNN
TiFlash replica selection strategyYYNNNNNNN
Index MergeYYYYYYEEE
Placement Rules in SQLYYYYYEENN
Cascades PlannerEEEEEEEEE
Runtime FilterYYNNNNNNN

Data definition language (DDL)

Data definition language (DDL)8.17.57.16.56.15.45.35.25.1
Basic CREATE, DROP, ALTER, RENAME, TRUNCATEYYYYYYYYY
Generated columnsYYYEEEEEE
ViewsYYYYYYYYY
SequencesYYYYYYYYY
Auto incrementYYYY4YYYYY
Auto randomYYYYYYYYY
TTL (Time to Live)YYYENNNNN
DDL algorithm assertionsYYYYYYYYY
Multi-schema change: add columnsYYYYEEEEE
Change column typeYYYYYYYYY
Temporary tablesYYYYYYYNN
Concurrent DDL statementsYYYYNNNNN
Acceleration of ADD INDEX and CREATE INDEXYYYYNNNNN
Metadata lockYYYYNNNNN
FLASHBACK CLUSTERYYYYNNNNN
Pause/Resume DDLYYNNNNNNN
TiDB Accelerated Table CreationENNNNNNNN
Configure BDR role to replicate DDL statements in BDR modeENNNNNNNN

Transactions

Transactions8.17.57.16.56.15.45.35.25.1
Async commitYYYYYYYYY
1PCYYYYYYYYY
Large transactions (10GB)YYYYYYYYY
Pessimistic transactionsYYYYYYYYY
Optimistic transactionsYYYYYYYYY
Repeatable-read isolation (snapshot isolation)YYYYYYYYY
Read-committed isolationYYYYYYYYY
Automatically terminating long-running idle transactionsYNNNNNNNN

Partitioning

Partitioning8.17.57.16.56.15.45.35.25.1
Range partitioningYYYYYYYYY
Hash partitioningYYYYYYYYY
Key partitioningYYYNNNNNN
List partitioningYYYYYEEEE
List COLUMNS partitioningYYYYYEEEE
Default partition for List and List COLUMNS partitioned tablesYYNNNNNNN
EXCHANGE PARTITIONYYYYEEEEE
REORGANIZE PARTITIONYYYNNNNNN
COALESCE PARTITIONYYYNNNNNN
Dynamic pruningYYYYYEEEE
Range COLUMNS partitioningYYYYNNNNN
Range INTERVAL partitioningYYYENNNNN
Convert a partitioned table to a non-partitioned tableYYNNNNNNN
Partition an existing tableYYNNNNNNN

Statistics

Statistics8.17.57.16.56.15.45.35.25.1
CMSketchDisabled by defaultDisabled by defaultDisabled by defaultDisabled by defaultDisabled by defaultDisabled by defaultDisabled by defaultYY
HistogramsYYYYYYYYY
Extended statisticsEEEEEEEEE
Statistics feedbackNNNNDeprecatedDeprecatedEEE
Automatically update statisticsYYYYYYYYY
Dynamic pruningYYYYYEEEE
Collect statistics for PREDICATE COLUMNSEEEEEENNN
Control the memory quota for collecting statisticsEEEENNNNN
Randomly sample about 10000 rows of data to quickly build statisticsDeprecatedDeprecatedEEEEEEE
Lock statisticsYYEENNNNN
Lightweight statistics initializationYYENNNNNN
Show the progress of collecting statisticsYYNNNNNNN

Security

Security8.17.57.16.56.15.45.35.25.1
Transparent layer security (TLS)YYYYYYYYY
Encryption at rest (TDE)YYYYYYYYY
Role-based authentication (RBAC)YYYYYYYYY
Certificate-based authenticationYYYYYYYYY
caching_sha2_password authenticationYYYYYYYYN
tidb_sm3_password authenticationYYYYNNNNN
tidb_auth_token authenticationYYYYNNNNN
authentication_ldap_sasl authenticationYYNNNNNNN
authentication_ldap_simple authenticationYYYNNNNNN
Password managementYYYYNNNNN
MySQL compatible GRANT systemYYYYYYYYY
Dynamic PrivilegesYYYYYYYYY
Security Enhanced ModeYYYYYYYYY
Redacted Log FilesYYYYYYYYY

Data import and export

Data import and export8.17.57.16.56.15.45.35.25.1
Fast import using TiDB LightningYYYYYYYYY
Fast import using the IMPORT INTO statementYYNNNNNNN
mydumper logical dumperDeprecatedDeprecatedDeprecatedDeprecatedDeprecatedDeprecatedDeprecatedDeprecatedDeprecated
Dumpling logical dumperYYYYYYYYY
Transactional LOAD DATA 5YYYYYYYYY
Database migration toolkit (DM)YYYYYYYYY
TiDB Binlog 6YYYYYYYYY
Change data capture (CDC)YYYYYYYYY
Stream data to Amazon S3, GCS, Azure Blob Storage, and NFS through TiCDCYYYENNNNN
TiCDC supports bidirectional replication between two TiDB clustersYYYYNNNNN
TiCDC OpenAPI v2YYYNNNNNN
DM supports migrating MySQL 8.0YEEEENNNN

Management, observability, and tools

Management, observability, and tools8.17.57.16.56.15.45.35.25.1
TiDB Dashboard UIYYYYYYYYY
TiDB Dashboard Continuous ProfilingYYYYYEENN
TiDB Dashboard Top SQLYYYYYENNN
TiDB Dashboard SQL DiagnosticsYYYYEEEEE
TiDB Dashboard Cluster DiagnosticsYYYYEEEEE
TiKV-FastTune dashboardEEEEEEEEE
Information schemaYYYYYYYYY
Metrics schemaYYYYYYYYY
Statements summary tablesYYYYYYYYY
Statements summary tables - summary persistenceEEENNNNNN
Slow query logYYYYYYYYY
TiUP deploymentYYYYYYYYY
Kubernetes operatorYYYYYYYYY
Built-in physical backupYYYYYYYYY
Global KillYYYYYEEEE
Lock ViewYYYYYYYYE
SHOW CONFIGYYYYYYYYY
SET CONFIGYYYYYEEEE
DM WebUIEEEEENNNN
Foreground Quota LimiterYYYYENNNN
Background Quota LimiterEEEENNNNN
EBS volume snapshot backup and restoreYYYYNNNNN
PITRYYYYNNNNN
Global memory controlYYYYNNNNN
Cross-cluster RawKV replicationEEEENNNNN
Green GCEEEEEEEEE
Resource controlYYYNNNNNN
Runaway Queries managementYENNNNNNN
Background tasks managementEENNNNNNN
TiFlash Disaggregated Storage and Compute Architecture and S3 SupportYYENNNNNN
Selecting TiDB nodes for the Distributed eXecution Framework (DXF) tasksYYNNNNNNN
PD Follower Proxy (controlled by tidb_enable_tso_follower_proxy)YYYYYYYNN
Active PD Follower (controlled by pd_enable_follower_handle_region)ENNNNNNNN
PD microservicesENNNNNNNN
TiDB Distributed eXecution Framework (DXF)YYENNNNNN
Global SortYENNNNNNN

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