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.46.36.26.16.05.45.35.25.15.04.0
Numeric typesYYYYYYYYYYY
Date and time typesYYYYYYYYYYY
String typesYYYYYYYYYYY
JSON typeYYExperimentalExperimentalExperimentalExperimentalExperimentalExperimentalExperimentalExperimentalExperimental
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 functionsYYExperimentalExperimentalExperimentalExperimentalExperimentalExperimentalExperimentalExperimentalExperimental
Aggregation functionsYYYYYYYYYYY
Window functionsYYYYYYYYYYY
Miscellaneous functionsYYYYYYYYYYY
OperatorsYYYYYYYYYYY
Character sets and collations 1YYYYYYYYYYY
User-level lockYYYYNNNNNNN

Indexing and constraints

Indexing and constraints6.46.36.26.16.05.45.35.25.15.04.0
Expression indexesExperimentalExperimentalExperimentalExperimentalExperimentalExperimentalExperimentalExperimentalExperimentalExperimental
Columnar storage (TiFlash)YYYYYYYYYYY
RocksDB engineYYYYYYYYYYY
Titan pluginYYYYYYYYYYY
Invisible indexesYYYYYYYYYYN
Composite PRIMARY KEYYYYYYYYYYYY
Unique indexesYYYYYYYYYYY
Clustered index on integer PRIMARY KEYYYYYYYYYYYY
Clustered index on composite or non-integer keyYYYYYYYYYYN

SQL statements

SQL statements 26.46.36.26.16.05.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 variablesExperimentalExperimentalExperimentalExperimentalExperimentalExperimentalExperimentalExperimentalExperimentalExperimentalExperimental
BATCH [ON COLUMN] LIMIT INTEGER DELETEYYYYNNNNNNN
ALTER TABLE ... COMPACTYYYExperimentalNNNNNNN

Advanced SQL features

Advanced SQL features6.46.36.26.16.05.45.35.25.15.04.0
Prepared statement cacheYYYYYYYExperimentalExperimentalExperimentalExperimental
SQL plan management (SPM)YYYYYYYYYYY
Coprocessor cacheYYYYYYYYYYExperimental
Stale ReadYYYYYYYYYNN
Follower readsYYYYYYYYYYY
Read historical data (tidb_snapshot)YYYYYYYYYYY
Optimizer hintsYYYYYYYYYYY
MPP Execution EngineYYYYYYYYYYN
Index MergeYYYYYYExperimentalExperimentalExperimentalExperimentalExperimental
Placement Rules in SQLYYYYYExperimentalExperimentalNNNN

Data definition language (DDL)

Data definition language (DDL)6.46.36.26.16.05.45.35.25.15.04.0
Basic CREATE, DROP, ALTER, RENAME, TRUNCATEYYYYYYYYYYY
Generated columnsExperimentalExperimentalExperimentalExperimentalExperimentalExperimentalExperimentalExperimentalExperimentalExperimentalExperimental
ViewsYYYYYYYYYYY
SequencesYYYYYYYYYYY
Auto incrementY3YYYYYYYYYY
Auto randomYYYYYYYYYYY
DDL algorithm assertionsYYYYYYYYYYY
Multi-schema change: add columnsYYYExperimentalExperimentalExperimentalExperimentalExperimentalExperimentalExperimentalExperimental
Change column typeYYYYYYYYYNN
Temporary tablesYYYYYYYNNNN
Concurrent DDL statementsYYYNNNNNNNN
Acceleration of ADD INDEX and CREATE INDEXExperimentalExperimentalNNNNNNNNN
Metadata lockExperimentalExperimentalNNNNNNNNN
FLASHBACK CLUSTER TO TIMESTAMPExperimentalNNNNNNNNNN

Transactions

Transactions6.46.36.26.16.05.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

Partitioning

Partitioning6.46.36.26.16.05.45.35.25.15.04.0
Range partitioningYYYYYYYYYYY
Hash partitioningYYYYYYYYYYY
List partitioningYYYYExperimentalExperimentalExperimentalExperimentalExperimentalExperimentalN
List COLUMNS partitioningYYYYExperimentalExperimentalExperimentalExperimentalExperimentalExperimentalN
EXCHANGE PARTITIONYYExperimentalExperimentalExperimentalExperimentalExperimentalExperimentalExperimentalExperimentalN
Dynamic pruningYYYYExperimentalExperimentalExperimentalExperimentalExperimentalNN
Range COLUMNS partitioningYYNNNNNNNNN
Range INTERVAL partitioningExperimentalExperimentalNNNNNNNNN

Statistics

Statistics6.46.36.26.16.05.45.35.25.15.04.0
CMSketchDisabled by defaultDisabled by defaultDisabled by defaultDisabled by defaultDisabled by defaultDisabled by defaultDisabled by defaultYYYY
HistogramsYYYYYYYYYYY
Extended statisticsExperimentalExperimentalExperimentalExperimentalExperimentalExperimentalExperimentalExperimentalExperimentalExperimentalN
Statistics feedbackNNNDeprecatedDeprecatedDeprecatedExperimentalExperimentalExperimentalExperimentalExperimental
Automatically update statisticsYYYYYYYYYYY
Fast AnalyzeExperimentalExperimentalExperimentalExperimentalExperimentalExperimentalExperimentalExperimentalExperimentalExperimentalExperimental
Dynamic pruningYYYYExperimentalExperimentalExperimentalExperimentalExperimentalNN

Security

Security6.46.36.26.16.05.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 authenticationYYNNNNNNNNN
tidb_auth_token authenticationYNNNNNNNNNN
MySQL compatible GRANT systemYYYYYYYYYYY
Dynamic PrivilegesYYYYYYYYYNN
Security Enhanced ModeYYYYYYYYYNN
Redacted Log FilesYYYYYYYYYYN

Data import and export

Data import and export6.46.36.26.16.05.45.35.25.15.04.0
Fast Importer (TiDB Lightning)YYYYYYYYYYY
mydumper logical dumperDeprecatedDeprecatedDeprecatedDeprecatedDeprecatedDeprecatedDeprecatedDeprecatedDeprecatedDeprecatedDeprecated
Dumpling logical dumperYYYYYYYYYYY
Transactional LOAD DATAYYYYYYYYYYN 4
Database migration toolkit (DM)YYYYYYYYYYY
TiDB BinlogYYYYYYYYYYY
Change data capture (CDC)YYYYYYYYYYY

Management, observability, and tools

Management, observability, and tools6.46.36.26.16.05.45.35.25.15.04.0
TiDB Dashboard UIYYYYYYYYYYY
TiDB Dashboard Continuous ProfilingYYYYYExperimentalExperimentalNNNN
TiDB Dashboard Top SQLYYYYYExperimentalNNNNN
TiDB Dashboard SQL DiagnosticsYExperimentalExperimentalExperimentalExperimentalExperimentalExperimentalExperimentalExperimentalExperimentalExperimental
TiDB Dashboard Cluster DiagnosticsYExperimentalExperimentalExperimentalExperimentalExperimentalExperimentalExperimentalExperimentalExperimentalExperimental
Information schemaYYYYYYYYYYY
Metrics schemaYYYYYYYYYYY
Statements summary tablesYYYYYYYYYYY
Slow query logYYYYYYYYYYY
TiUP deploymentYYYYYYYYYYY
Ansible deploymentNNNNNNNNNNDeprecated
Kubernetes operatorYYYYYYYYYYY
Built-in physical backupYYYYYYYYYYY
Global KillYYYYExperimentalExperimentalExperimentalExperimentalExperimentalExperimentalExperimental
Lock ViewYYYYYYYYExperimentalExperimentalExperimental
SHOW CONFIGYYYYYYYYYYY
SET CONFIGYYYYExperimentalExperimentalExperimentalExperimentalExperimentalExperimentalExperimental
DM WebUIExperimentalExperimentalExperimentalExperimentalExperimentalNNNNNN
Foreground Quota LimiterYYYExperimentalExperimentalNNNNNN
EBS volume snapshot backup and restoreYNNNNNNNNNN
PITRYYYNNNNNNNN

  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. Starting from v6.4.0, TiDB supports high-performance and globally monotonic AUTO_INCREMENT columns
  4. For TiDB v4.0, the LOAD DATA transaction does not guarantee atomicity.