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 operators6.36.26.16.05.45.35.25.15.04.0
Numeric typesYYYYYYYYYY
Date and time typesYYYYYYYYYY
String typesYYYYYYYYYY
JSON typeYExperimentalExperimentalExperimentalExperimentalExperimentalExperimentalExperimentalExperimentalExperimental
Control flow functionsYYYYYYYYYY
String functionsYYYYYYYYYY
Numeric functions and operatorsYYYYYYYYYY
Date and time functionsYYYYYYYYYY
Bit functions and operatorsYYYYYYYYYY
Cast functions and operatorsYYYYYYYYYY
Encryption and compression functionsYYYYYYYYYY
Information functionsYYYYYYYYYY
JSON functionsYExperimentalExperimentalExperimentalExperimentalExperimentalExperimentalExperimentalExperimentalExperimental
Aggregation functionsYYYYYYYYYY
Window functionsYYYYYYYYYY
Miscellaneous functionsYYYYYYYYYY
OperatorsYYYYYYYYYY
Character sets and collations 1YYYYYYYYYY
User-level lockYYYNNNNNNN

Indexing and constraints

Indexing and constraints6.36.26.16.05.45.35.25.15.04.0
Expression indexesExperimentalExperimentalExperimentalExperimentalExperimentalExperimentalExperimentalExperimentalExperimental
Columnar storage (TiFlash)YYYYYYYYYY
RocksDB engineYYYYYYYYYY
Titan pluginYYYYYYYYYY
Invisible indexesYYYYYYYYYN
Composite PRIMARY KEYYYYYYYYYYY
Unique indexesYYYYYYYYYY
Clustered index on integer PRIMARY KEYYYYYYYYYYY
Clustered index on composite or non-integer keyYYYYYYYYYN

SQL statements

SQL statements 26.36.26.16.05.45.35.25.15.04.0
Basic SELECT, INSERT, UPDATE, DELETE, REPLACEYYYYYYYYYY
INSERT ON DUPLICATE KEY UPDATEYYYYYYYYYY
LOAD DATA INFILEYYYYYYYYYY
SELECT INTO OUTFILEYYYYYYYYYY
INNER JOIN, LEFT|RIGHT [OUTER] JOINYYYYYYYYYY
UNION, UNION ALLYYYYYYYYYY
EXCEPT and INTERSECT operatorsYYYYYYYYYN
GROUP BY, ORDER BYYYYYYYYYYY
Window FunctionsYYYYYYYYYY
Common Table Expressions (CTE)YYYYYYYYNN
START TRANSACTION, COMMIT, ROLLBACKYYYYYYYYYY
EXPLAINYYYYYYYYYY
EXPLAIN ANALYZEYYYYYYYYYY
User-defined variablesExperimentalExperimentalExperimentalExperimentalExperimentalExperimentalExperimentalExperimentalExperimentalExperimental
BATCH [ON COLUMN] LIMIT INTEGER DELETEYYYNNNNNNN
ALTER TABLE ... COMPACTYYExperimentalNNNNNNN

Advanced SQL features

Advanced SQL features6.36.26.16.05.45.35.25.15.04.0
Prepared statement cacheYYYYYYExperimentalExperimentalExperimentalExperimental
SQL plan management (SPM)YYYYYYYYYY
Coprocessor cacheYYYYYYYYYExperimental
Stale ReadYYYYYYYYNN
Follower readsYYYYYYYYYY
Read historical data (tidb_snapshot)YYYYYYYYYY
Optimizer hintsYYYYYYYYYY
MPP Execution EngineYYYYYYYYYN
Index MergeYYYYYExperimentalExperimentalExperimentalExperimentalExperimental
Placement Rules in SQLYYYYExperimentalExperimentalNNNN

Data definition language (DDL)

Data definition language (DDL)6.36.26.16.05.45.35.25.15.04.0
Basic CREATE, DROP, ALTER, RENAME, TRUNCATEYYYYYYYYYY
Generated columnsExperimentalExperimentalExperimentalExperimentalExperimentalExperimentalExperimentalExperimentalExperimentalExperimental
ViewsYYYYYYYYYY
SequencesYYYYYYYYYY
Auto incrementYYYYYYYYYY
Auto randomYYYYYYYYYY
DDL algorithm assertionsYYYYYYYYYY
Multi-schema change: add columnsYYExperimentalExperimentalExperimentalExperimentalExperimentalExperimentalExperimentalExperimental
Change column typeYYYYYYYYNN
Temporary tablesYYYYYYNNNN

Transactions

Transactions6.36.26.16.05.45.35.25.15.04.0
Async commitYYYYYYYYYN
1PCYYYYYYYYYN
Large transactions (10GB)YYYYYYYYYY
Pessimistic transactionsYYYYYYYYYY
Optimistic transactionsYYYYYYYYYY
Repeatable-read isolation (snapshot isolation)YYYYYYYYYY
Read-committed isolationYYYYYYYYYY

Partitioning

Partitioning6.36.26.16.05.45.35.25.15.04.0
Range partitioningYYYYYYYYYY
Hash partitioningYYYYYYYYYY
List partitioningYYYExperimentalExperimentalExperimentalExperimentalExperimentalExperimentalN
List COLUMNS partitioningYYYExperimentalExperimentalExperimentalExperimentalExperimentalExperimentalN
EXCHANGE PARTITIONYExperimentalExperimentalExperimentalExperimentalExperimentalExperimentalExperimentalExperimentalN
Dynamic pruningYYYExperimentalExperimentalExperimentalExperimentalExperimentalNN
Range COLUMNS partitioningYNNNNNNNNN
Range INTERVAL partitioningExperimentalNNNNNNNNN

Statistics

Statistics6.36.26.16.05.45.35.25.15.04.0
CMSketchDisabled by defaultDisabled by defaultDisabled by defaultDisabled by defaultDisabled by defaultDisabled by defaultYYYY
HistogramsYYYYYYYYYY
Extended statisticsExperimentalExperimentalExperimentalExperimentalExperimentalExperimentalExperimentalExperimentalExperimentalN
Statistics feedbackNNDeprecatedDeprecatedDeprecatedExperimentalExperimentalExperimentalExperimentalExperimental
Automatically update statisticsYYYYYYYYYY
Fast AnalyzeExperimentalExperimentalExperimentalExperimentalExperimentalExperimentalExperimentalExperimentalExperimentalExperimental
Dynamic pruningYYYExperimentalExperimentalExperimentalExperimentalExperimentalNN

Security

Security6.36.26.16.05.45.35.25.15.04.0
Transparent layer security (TLS)YYYYYYYYYY
Encryption at rest (TDE)YYYYYYYYYY
Role-based authentication (RBAC)YYYYYYYYYY
Certificate-based authenticationYYYYYYYYYY
caching_sha2_password authenticationYYYYYYYNNN
tidb_sm3_password authenticationYNNNNNNNNN
MySQL compatible GRANT systemYYYYYYYYYY
Dynamic PrivilegesYYYYYYYYNN
Security Enhanced ModeYYYYYYYYNN
Redacted Log FilesYYYYYYYYYN

Data import and export

Data import and export6.36.26.16.05.45.35.25.15.04.0
Fast Importer (TiDB Lightning)YYYYYYYYYY
mydumper logical dumperDeprecatedDeprecatedDeprecatedDeprecatedDeprecatedDeprecatedDeprecatedDeprecatedDeprecatedDeprecated
Dumpling logical dumperYYYYYYYYYY
Transactional LOAD DATAYYYYYYYYYN 3
Database migration toolkit (DM)YYYYYYYYYY
TiDB BinlogYYYYYYYYYY
Change data capture (CDC)YYYYYYYYYY

Management, observability, and tools

Management, observability, and tools6.36.26.16.05.45.35.25.15.04.0
TiDB Dashboard UIYYYYYYYYYY
TiDB Dashboard Continuous ProfilingYYYYExperimentalExperimentalNNNN
TiDB Dashboard Top SQLYYYYExperimentalNNNNN
TiDB Dashboard SQL DiagnosticsExperimentalExperimentalExperimentalExperimentalExperimentalExperimentalExperimentalExperimentalExperimentalExperimental
Information schemaYYYYYYYYYY
Metrics schemaYYYYYYYYYY
Statements summary tablesYYYYYYYYYY
Slow query logYYYYYYYYYY
TiUP deploymentYYYYYYYYYY
Ansible deploymentNNNNNNNNNDeprecated
Kubernetes operatorYYYYYYYYYY
Built-in physical backupYYYYYYYYYY
Global KillYYYExperimentalExperimentalExperimentalExperimentalExperimentalExperimentalExperimental
Lock ViewYYYYYYYExperimentalExperimentalExperimental
SHOW CONFIGYYYYYYYYYY
SET CONFIGYYYExperimentalExperimentalExperimentalExperimentalExperimentalExperimentalExperimental
DM WebUIExperimentalExperimentalExperimentalExperimentalNNNNNN
Foreground Quota LimiterYYExperimentalExperimentalNNNNNN

  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.