TiDB Features

This document lists the features supported in each TiDB version. Note that supports for experimental features might change before the final release.

Data types, functions, and operators

Data types, functions, and operators5.25.15.04.0
Numeric typesYYYY
Date and time typesYYYY
String typesYYYY
JSON typeExperimentalExperimentalExperimentalExperimental
Control flow functionsYYYY
String functionsYYYY
Numeric functions and operatorsYYYY
Date and time functionsYYYY
Bit functions and operatorsYYYY
Cast functions and operatorsYYYY
Encryption and compression functionsYYYY
Information functionsYYYY
JSON functionsExperimentalExperimentalExperimentalExperimental
Aggregation functionsYYYY
Window functionsYYYY
Miscellaneous functionsYYYY
OperatorsYYYY
Character sets and collations 1YYYY

Indexing and constraints

Indexing and constraints5.25.15.04.0
Expression indexesExperimentalExperimentalExperimentalExperimental
Columnar storage (TiFlash)YYYY
RocksDB engineYYYY
Titan pluginYYYY
Invisible indexesYYYN
Composite PRIMARY KEYYYYY
Unique indexesYYYY
Clustered index on integer PRIMARY KEYYYYY
Clustered index on composite or non-integer keyYYYN

SQL statements

SQL statements 25.25.15.04.0
Basic SELECT, INSERT, UPDATE, DELETE, REPLACEYYYY
INSERT ON DUPLICATE KEY UPDATEYYYY
LOAD DATA INFILEYYYY
SELECT INTO OUTFILEYYYY
INNER JOIN, LEFT\|RIGHT [OUTER] JOINYYYY
UNION, UNION ALLYYYY
EXCEPT and INTERSECT operatorsYYYN
GROUP BY, ORDER BYYYYY
Window FunctionsYYYY
Common Table Expressions (CTE)YYNN
START TRANSACTION, COMMIT, ROLLBACKYYYY
EXPLAINYYYY
EXPLAIN ANALYZEYYYY
User-defined variablesExperimentalExperimentalExperimentalExperimental
Table LockExperimentalExperimentalExperimentalExperimental

Advanced SQL features

Advanced SQL features5.25.15.04.0
Prepared statement cacheExperimentalExperimentalExperimentalExperimental
SQL plan management (SPM)YYYY
Coprocessor cacheYYYExperimental
Stale ReadYYNN
Follower readsYYYY
Read historical data (tidb_snapshot)YYYY
Optimizer hintsYYYY
MPP Execution EngineYYYN
Index Merge JoinExperimentalExperimentalExperimentalExperimental

Data definition language (DDL)

Data definition language (DDL)5.25.15.04.0
Basic CREATE, DROP, ALTER, RENAME, TRUNCATEYYYY
Generated columnsExperimentalExperimentalExperimentalExperimental
ViewsYYYY
SequencesYYYY
Auto incrementYYYY
Auto randomYYYY
DDL algorithm assertionsYYYY
Multi-schema change: add columnsExperimentalExperimentalExperimentalExperimental
Change column typeYYNN

Transactions

Transactions5.25.15.04.0
Async commitYYYN
1PCYYYN
Large transactions (10GB)YYYY
Pessimistic transactionsYYYY
Optimistic transactionsYYYY
Repeatable-read isolation (snapshot isolation)YYYY
Read-committed isolationYYYY

Partitioning

Partitioning5.25.15.04.0
Range partitioningYYYY
Hash partitioningYYYY
List partitioningExperimentalExperimentalExperimentalN
List COLUMNS partitioningExperimentalExperimentalExperimentalN
EXCHANGE PARTITIONExperimentalExperimentalExperimentalN
Dynamic PruningExperimentalExperimentalNN

Statistics

Statistics5.25.15.04.0
CMSketchDeprecatedDeprecatedDeprecatedY
HistogramsYYYY
Extended statistics (multiple columns)ExperimentalExperimentalExperimentalN
Statistics FeedbackExperimentalExperimentalExperimentalExperimental

Security

Security5.25.15.04.0
Transparent layer security (TLS)YYYY
Encryption at rest (TDE)YYYY
Role-based authentication (RBAC)YYYY
Certificate-based authenticationYYYY
caching_sha2_password authenticationYNNN
MySQL compatible GRANT systemYYYY
Dynamic PrivilegesYYNN
Security Enhanced ModeYYNN
Redacted Log FilesYYYN

Data import and export

Data import and export5.25.15.04.0
Fast Importer (TiDB Lightning)YYYY
mydumper logical dumperDeprecatedDeprecatedDeprecatedDeprecated
Dumpling logical dumperYYYY
Transactional LOAD DATAYYYN
Database migration toolkit (DM)YYYY
TiDB BinlogYYYY
Change data capture (CDC)YYYY

Management, observability, and tools

Management, observability, and tools5.25.15.04.0
TiDB DashboardYYYY
SQL diagnosticsExperimentalExperimentalExperimentalExperimental
Information schemaYYYY
Metrics schemaYYYY
Statements summary tablesYYYY
Slow query logYYYY
TiUP deploymentYYYY
Ansible deploymentNNNDeprecated
Kubernetes operatorYYYY
Built-in physical backupYYYY
Global KillExperimentalExperimentalExperimentalExperimental
Lock ViewYExperimentalExperimentalExperimental
SHOW CONFIGYYYY
SET CONFIGExperimentalExperimentalExperimentalExperimental

  1. TiDB incorrectly treats latin1 as a subset of utf8. See TiDB #18955 for more details.
  2. See Statement Reference for a full list of SQL statements supported.