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.16.05.45.35.25.15.04.0
Numeric typesYYYYYYYY
Date and time typesYYYYYYYY
String typesYYYYYYYY
JSON typeExperimentalExperimentalExperimentalExperimentalExperimentalExperimentalExperimentalExperimental
Control flow functionsYYYYYYYY
String functionsYYYYYYYY
Numeric functions and operatorsYYYYYYYY
Date and time functionsYYYYYYYY
Bit functions and operatorsYYYYYYYY
Cast functions and operatorsYYYYYYYY
Encryption and compression functionsYYYYYYYY
Information functionsYYYYYYYY
JSON functionsExperimentalExperimentalExperimentalExperimentalExperimentalExperimentalExperimentalExperimental
Aggregation functionsYYYYYYYY
Window functionsYYYYYYYY
Miscellaneous functionsYYYYYYYY
OperatorsYYYYYYYY
Character sets and collations 1YYYYYYYY
User-level lockYNNNNNNN

Indexing and constraints

Indexing and constraints6.16.05.45.35.25.15.04.0
Expression indexesExperimentalExperimentalExperimentalExperimentalExperimentalExperimentalExperimentalExperimental
Columnar storage (TiFlash)YYYYYYYY
RocksDB engineYYYYYYYY
Titan pluginYYYYYYYY
Invisible indexesYYYYYYYN
Composite PRIMARY KEYYYYYYYYY
Unique indexesYYYYYYYY
Clustered index on integer PRIMARY KEYYYYYYYYY
Clustered index on composite or non-integer keyYYYYYYYN

SQL statements

SQL statements 26.16.05.45.35.25.15.04.0
Basic SELECT, INSERT, UPDATE, DELETE, REPLACEYYYYYYYY
INSERT ON DUPLICATE KEY UPDATEYYYYYYYY
LOAD DATA INFILEYYYYYYYY
SELECT INTO OUTFILEYYYYYYYY
INNER JOIN, LEFT|RIGHT [OUTER] JOINYYYYYYYY
UNION, UNION ALLYYYYYYYY
EXCEPT and INTERSECT operatorsYYYYYYYN
GROUP BY, ORDER BYYYYYYYYY
Window FunctionsYYYYYYYY
Common Table Expressions (CTE)YYYYYYNN
START TRANSACTION, COMMIT, ROLLBACKYYYYYYYY
EXPLAINYYYYYYYY
EXPLAIN ANALYZEYYYYYYYY
User-defined variablesExperimentalExperimentalExperimentalExperimentalExperimentalExperimentalExperimentalExperimental
BATCH [ON COLUMN] LIMIT INTEGER DELETEYNNNNNNN
Table LockExperimentalExperimentalExperimentalExperimentalExperimentalExperimentalExperimentalExperimental

Advanced SQL features

Advanced SQL features6.16.05.45.35.25.15.04.0
Prepared statement cacheYYYYExperimentalExperimentalExperimentalExperimental
SQL plan management (SPM)YYYYYYYY
Coprocessor cacheYYYYYYYExperimental
Stale ReadYYYYYYNN
Follower readsYYYYYYYY
Read historical data (tidb_snapshot)YYYYYYYY
Optimizer hintsYYYYYYYY
MPP Execution EngineYYYYYYYN
Index MergeYYYExperimentalExperimentalExperimentalExperimentalExperimental
Placement Rules in SQLYYExperimentalExperimentalNNNN

Data definition language (DDL)

Data definition language (DDL)6.16.05.45.35.25.15.04.0
Basic CREATE, DROP, ALTER, RENAME, TRUNCATEYYYYYYYY
Generated columnsExperimentalExperimentalExperimentalExperimentalExperimentalExperimentalExperimentalExperimental
ViewsYYYYYYYY
SequencesYYYYYYYY
Auto incrementYYYYYYYY
Auto randomYYYYYYYY
DDL algorithm assertionsYYYYYYYY
Multi-schema change: add columnsExperimentalExperimentalExperimentalExperimentalExperimentalExperimentalExperimentalExperimental
Change column typeYYYYYYNN
Temporary tablesYYYYNNNN

Transactions

Transactions6.16.05.45.35.25.15.04.0
Async commitYYYYYYYN
1PCYYYYYYYN
Large transactions (10GB)YYYYYYYY
Pessimistic transactionsYYYYYYYY
Optimistic transactionsYYYYYYYY
Repeatable-read isolation (snapshot isolation)YYYYYYYY
Read-committed isolationYYYYYYYY

Partitioning

Partitioning6.16.05.45.35.25.15.04.0
Range partitioningYYYYYYYY
Hash partitioningYYYYYYYY
List partitioningYExperimentalExperimentalExperimentalExperimentalExperimentalExperimentalN
List COLUMNS partitioningYExperimentalExperimentalExperimentalExperimentalExperimentalExperimentalN
EXCHANGE PARTITIONExperimentalExperimentalExperimentalExperimentalExperimentalExperimentalExperimentalN
Dynamic PruningYExperimentalExperimentalExperimentalExperimentalExperimentalNN

Statistics

Statistics6.16.05.45.35.25.15.04.0
CMSketchDisabled by defaultDisabled by defaultDisabled by defaultDisabled by defaultYYYY
HistogramsYYYYYYYY
Extended statisticsExperimentalExperimentalExperimentalExperimentalExperimentalExperimentalExperimentalN
Statistics feedbackDeprecatedDeprecatedDeprecatedExperimentalExperimentalExperimentalExperimentalExperimental
Automatically update statisticsYYYYYYYY
Dynamic pruningYExperimentalExperimentalExperimentalExperimentalExperimentalNN

Security

Security6.16.05.45.35.25.15.04.0
Transparent layer security (TLS)YYYYYYYY
Encryption at rest (TDE)YYYYYYYY
Role-based authentication (RBAC)YYYYYYYY
Certificate-based authenticationYYYYYYYY
caching_sha2_password authenticationYYYYYNNN
MySQL compatible GRANT systemYYYYYYYY
Dynamic PrivilegesYYYYYYNN
Security Enhanced ModeYYYYYYNN
Redacted Log FilesYYYYYYYN

Data import and export

Data import and export6.16.05.45.35.25.15.04.0
Fast Importer (TiDB Lightning)YYYYYYYY
mydumper logical dumperDeprecatedDeprecatedDeprecatedDeprecatedDeprecatedDeprecatedDeprecatedDeprecated
Dumpling logical dumperYYYYYYYY
Transactional LOAD DATAYYYYYYYN 3
Database migration toolkit (DM)YYYYYYYY
TiDB BinlogYYYYYYYY
Change data capture (CDC)YYYYYYYY

Management, observability, and tools

Management, observability, and tools6.16.05.45.35.25.15.04.0
TiDB Dashboard UIYYYYYYYY
TiDB Dashboard Continuous ProfilingYYExperimentalExperimentalNNNN
TiDB Dashboard Top SQLYYExperimentalNNNNN
TiDB Dashboard SQL DiagnosticsExperimentalExperimentalExperimentalExperimentalExperimentalExperimentalExperimentalExperimental
Information schemaYYYYYYYY
Metrics schemaYYYYYYYY
Statements summary tablesYYYYYYYY
Slow query logYYYYYYYY
TiUP deploymentYYYYYYYY
Ansible deploymentNNNNNNNDeprecated
Kubernetes operatorYYYYYYYY
Built-in physical backupYYYYYYYY
Global KillYExperimentalExperimentalExperimentalExperimentalExperimentalExperimentalExperimental
Lock ViewYYYYYExperimentalExperimentalExperimental
SHOW CONFIGYYYYYYYY
SET CONFIGYExperimentalExperimentalExperimentalExperimentalExperimentalExperimentalExperimental
DM WebUIExperimentalExperimentalNNNNNN

  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?