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.45.35.25.15.04.0
Numeric typesYYYYYY
Date and time typesYYYYYY
String typesYYYYYY
JSON typeExperimentalExperimentalExperimentalExperimentalExperimentalExperimental
Control flow functionsYYYYYY
String functionsYYYYYY
Numeric functions and operatorsYYYYYY
Date and time functionsYYYYYY
Bit functions and operatorsYYYYYY
Cast functions and operatorsYYYYYY
Encryption and compression functionsYYYYYY
Information functionsYYYYYY
JSON functionsExperimentalExperimentalExperimentalExperimentalExperimentalExperimental
Aggregation functionsYYYYYY
Window functionsYYYYYY
Miscellaneous functionsYYYYYY
OperatorsYYYYYY
Character sets and collations 1YYYYYY

Indexing and constraints

Indexing and constraints5.45.35.25.15.04.0
Expression indexesExperimentalExperimentalExperimentalExperimentalExperimentalExperimental
Columnar storage (TiFlash)YYYYYY
RocksDB engineYYYYYY
Titan pluginYYYYYY
Invisible indexesYYYYYN
Composite PRIMARY KEYYYYYYY
Unique indexesYYYYYY
Clustered index on integer PRIMARY KEYYYYYYY
Clustered index on composite or non-integer keyYYYYYN

SQL statements

SQL statements 25.45.35.25.15.04.0
Basic SELECT, INSERT, UPDATE, DELETE, REPLACEYYYYYY
INSERT ON DUPLICATE KEY UPDATEYYYYYY
LOAD DATA INFILEYYYYYY
SELECT INTO OUTFILEYYYYYY
INNER JOIN, LEFT|RIGHT [OUTER] JOINYYYYYY
UNION, UNION ALLYYYYYY
EXCEPT and INTERSECT operatorsYYYYYN
GROUP BY, ORDER BYYYYYYY
Window FunctionsYYYYYY
Common Table Expressions (CTE)YYYYNN
START TRANSACTION, COMMIT, ROLLBACKYYYYYY
EXPLAINYYYYYY
EXPLAIN ANALYZEYYYYYY
User-defined variablesExperimentalExperimentalExperimentalExperimentalExperimentalExperimental
Table LockExperimentalExperimentalExperimentalExperimentalExperimentalExperimental

Advanced SQL features

Advanced SQL features5.45.35.25.15.04.0
Prepared statement cacheYYExperimentalExperimentalExperimentalExperimental
SQL plan management (SPM)YYYYYY
Coprocessor cacheYYYYYExperimental
Stale ReadYYYYNN
Follower readsYYYYYY
Read historical data (tidb_snapshot)YYYYYY
Optimizer hintsYYYYYY
MPP Execution EngineYYYYYN
Index MergeYExperimentalExperimentalExperimentalExperimentalExperimental
Placement Rules in SQLExperimentalExperimentalNNNN

Data definition language (DDL)

Data definition language (DDL)5.45.35.25.15.04.0
Basic CREATE, DROP, ALTER, RENAME, TRUNCATEYYYYYY
Generated columnsExperimentalExperimentalExperimentalExperimentalExperimentalExperimental
ViewsYYYYYY
SequencesYYYYYY
Auto incrementYYYYYY
Auto randomYYYYYY
DDL algorithm assertionsYYYYYY
Multi-schema change: add columnsExperimentalExperimentalExperimentalExperimentalExperimentalExperimental
Change column typeYYYYNN
Temporary tablesYYNNNN

Transactions

Transactions5.45.35.25.15.04.0
Async commitYYYYYN
1PCYYYYYN
Large transactions (10GB)YYYYYY
Pessimistic transactionsYYYYYY
Optimistic transactionsYYYYYY
Repeatable-read isolation (snapshot isolation)YYYYYY
Read-committed isolationYYYYYY

Partitioning

Partitioning5.45.35.25.15.04.0
Range partitioningYYYYYY
Hash partitioningYYYYYY
List partitioningExperimentalExperimentalExperimentalExperimentalExperimentalN
List COLUMNS partitioningExperimentalExperimentalExperimentalExperimentalExperimentalN
EXCHANGE PARTITIONExperimentalExperimentalExperimentalExperimentalExperimentalN
Dynamic PruningExperimentalExperimentalExperimentalExperimentalNN

Statistics

Statistics5.45.35.25.15.04.0
CMSketchDeprecatedDeprecatedDeprecatedDeprecatedDeprecatedY
HistogramsYYYYYY
Extended statistics (multiple columns)ExperimentalExperimentalExperimentalExperimentalExperimentalN
Statistics FeedbackDeprecatedExperimentalExperimentalExperimentalExperimentalExperimental

Security

Security5.45.35.25.15.04.0
Transparent layer security (TLS)YYYYYY
Encryption at rest (TDE)YYYYYY
Role-based authentication (RBAC)YYYYYY
Certificate-based authenticationYYYYYY
caching_sha2_password authenticationYYYNNN
MySQL compatible GRANT systemYYYYYY
Dynamic PrivilegesYYYYNN
Security Enhanced ModeYYYYNN
Redacted Log FilesYYYYYN

Data import and export

Data import and export5.45.35.25.15.04.0
Fast Importer (TiDB Lightning)YYYYYY
mydumper logical dumperDeprecatedDeprecatedDeprecatedDeprecatedDeprecatedDeprecated
Dumpling logical dumperYYYYYY
Transactional LOAD DATAYYYYYN 3
Database migration toolkit (DM)YYYYYY
TiDB BinlogYYYYYY
Change data capture (CDC)YYYYYY

Management, observability, and tools

Management, observability, and tools5.45.35.25.15.04.0
TiDB DashboardYYYYYY
SQL diagnosticsExperimentalExperimentalExperimentalExperimentalExperimentalExperimental
Information schemaYYYYYY
Metrics schemaYYYYYY
Statements summary tablesYYYYYY
Slow query logYYYYYY
TiUP deploymentYYYYYY
Ansible deploymentNNNNNDeprecated
Kubernetes operatorYYYYYY
Built-in physical backupYYYYYY
Global KillExperimentalExperimentalExperimentalExperimentalExperimentalExperimental
Lock ViewYYYExperimentalExperimentalExperimental
SHOW CONFIGYYYYYY
SET CONFIGExperimentalExperimentalExperimentalExperimentalExperimentalExperimental
Continuous ProfilingExperimentalExperimentalNNNN
Top SQLExperimentalNNNNN

  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.
  3. For TiDB v4.0, the LOAD DATA transaction does not guarantee atomicity.

Was this page helpful?