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.26.16.05.45.35.25.15.04.0
Numeric typesYYYYYYYYY
Date and time typesYYYYYYYYY
String typesYYYYYYYYY
JSON typeExperimentalExperimentalExperimentalExperimentalExperimentalExperimentalExperimentalExperimentalExperimental
Control flow functionsYYYYYYYYY
String functionsYYYYYYYYY
Numeric functions and operatorsYYYYYYYYY
Date and time functionsYYYYYYYYY
Bit functions and operatorsYYYYYYYYY
Cast functions and operatorsYYYYYYYYY
Encryption and compression functionsYYYYYYYYY
Information functionsYYYYYYYYY
JSON functionsExperimentalExperimentalExperimentalExperimentalExperimentalExperimentalExperimentalExperimentalExperimental
Aggregation functionsYYYYYYYYY
Window functionsYYYYYYYYY
Miscellaneous functionsYYYYYYYYY
OperatorsYYYYYYYYY
Character sets and collations 1YYYYYYYYY
User-level lockYYNNNNNNN

Indexing and constraints

Indexing and constraints6.26.16.05.45.35.25.15.04.0
Expression indexesExperimentalExperimentalExperimentalExperimentalExperimentalExperimentalExperimentalExperimentalExperimental
Columnar storage (TiFlash)YYYYYYYYY
RocksDB engineYYYYYYYYY
Titan pluginYYYYYYYYY
Invisible indexesYYYYYYYYN
Composite PRIMARY KEYYYYYYYYYY
Unique indexesYYYYYYYYY
Clustered index on integer PRIMARY KEYYYYYYYYYY
Clustered index on composite or non-integer keyYYYYYYYYN

SQL statements

SQL statements 26.26.16.05.45.35.25.15.04.0
Basic SELECT, INSERT, UPDATE, DELETE, REPLACEYYYYYYYYY
INSERT ON DUPLICATE KEY UPDATEYYYYYYYYY
LOAD DATA INFILEYYYYYYYYY
SELECT INTO OUTFILEYYYYYYYYY
INNER JOIN, LEFT\|RIGHT [OUTER] JOINYYYYYYYYY
UNION, UNION ALLYYYYYYYYY
EXCEPT and INTERSECT operatorsYYYYYYYYN
GROUP BY, ORDER BYYYYYYYYYY
Window FunctionsYYYYYYYYY
Common Table Expressions (CTE)YYYYYYYNN
START TRANSACTION, COMMIT, ROLLBACKYYYYYYYYY
EXPLAINYYYYYYYYY
EXPLAIN ANALYZEYYYYYYYYY
User-defined variablesExperimentalExperimentalExperimentalExperimentalExperimentalExperimentalExperimentalExperimentalExperimental
BATCH [ON COLUMN] LIMIT INTEGER DELETEYYNNNNNNN
ALTER TABLE ... COMPACTYExperimentalNNNNNNN

Advanced SQL features

Advanced SQL features6.26.16.05.45.35.25.15.04.0
Prepared statement cacheYYYYYExperimentalExperimentalExperimentalExperimental
SQL plan management (SPM)YYYYYYYYY
Coprocessor cacheYYYYYYYYExperimental
Stale ReadYYYYYYYNN
Follower readsYYYYYYYYY
Read historical data (tidb_snapshot)YYYYYYYYY
Optimizer hintsYYYYYYYYY
MPP Execution EngineYYYYYYYYN
Index MergeYYYYExperimentalExperimentalExperimentalExperimentalExperimental
Placement Rules in SQLYYYExperimentalExperimentalNNNN

Data definition language (DDL)

Data definition language (DDL)6.26.16.05.45.35.25.15.04.0
Basic CREATE, DROP, ALTER, RENAME, TRUNCATEYYYYYYYYY
Generated columnsExperimentalExperimentalExperimentalExperimentalExperimentalExperimentalExperimentalExperimentalExperimental
ViewsYYYYYYYYY
SequencesYYYYYYYYY
Auto incrementYYYYYYYYY
Auto randomYYYYYYYYY
DDL algorithm assertionsYYYYYYYYY
Multi-schema change: add columnsYExperimentalExperimentalExperimentalExperimentalExperimentalExperimentalExperimentalExperimental
Change column typeYYYYYYYNN
Temporary tablesYYYYYNNNN

Transactions

Transactions6.26.16.05.45.35.25.15.04.0
Async commitYYYYYYYYN
1PCYYYYYYYYN
Large transactions (10GB)YYYYYYYYY
Pessimistic transactionsYYYYYYYYY
Optimistic transactionsYYYYYYYYY
Repeatable-read isolation (snapshot isolation)YYYYYYYYY
Read-committed isolationYYYYYYYYY

Partitioning

Partitioning6.26.16.05.45.35.25.15.04.0
Range partitioningYYYYYYYYY
Hash partitioningYYYYYYYYY
List partitioningYYExperimentalExperimentalExperimentalExperimentalExperimentalExperimentalN
List COLUMNS partitioningYYExperimentalExperimentalExperimentalExperimentalExperimentalExperimentalN
EXCHANGE PARTITIONExperimentalExperimentalExperimentalExperimentalExperimentalExperimentalExperimentalExperimentalN
Dynamic PruningYYExperimentalExperimentalExperimentalExperimentalExperimentalNN

Statistics

Statistics6.26.16.05.45.35.25.15.04.0
CMSketchDisabled by defaultDisabled by defaultDisabled by defaultDisabled by defaultDisabled by defaultYYYY
HistogramsYYYYYYYYY
Extended statisticsExperimentalExperimentalExperimentalExperimentalExperimentalExperimentalExperimentalExperimentalN
Statistics feedbackNDeprecatedDeprecatedDeprecatedExperimentalExperimentalExperimentalExperimentalExperimental
Automatically update statisticsYYYYYYYYY
Fast AnalyzeExperimentalExperimentalExperimentalExperimentalExperimentalExperimentalExperimentalExperimentalExperimental
Dynamic pruningYYExperimentalExperimentalExperimentalExperimentalExperimentalNN

Security

Security6.26.16.05.45.35.25.15.04.0
Transparent layer security (TLS)YYYYYYYYY
Encryption at rest (TDE)YYYYYYYYY
Role-based authentication (RBAC)YYYYYYYYY
Certificate-based authenticationYYYYYYYYY
caching_sha2_password authenticationYYYYYYNNN
MySQL compatible GRANT systemYYYYYYYYY
Dynamic PrivilegesYYYYYYYNN
Security Enhanced ModeYYYYYYYNN
Redacted Log FilesYYYYYYYYN

Data import and export

Data import and export6.26.16.05.45.35.25.15.04.0
Fast Importer (TiDB Lightning)YYYYYYYYY
mydumper logical dumperDeprecatedDeprecatedDeprecatedDeprecatedDeprecatedDeprecatedDeprecatedDeprecatedDeprecated
Dumpling logical dumperYYYYYYYYY
Transactional LOAD DATAYYYYYYYYN 3
Database migration toolkit (DM)YYYYYYYYY
TiDB BinlogYYYYYYYYY
Change data capture (CDC)YYYYYYYYY

Management, observability, and tools

Management, observability, and tools6.26.16.05.45.35.25.15.04.0
TiDB Dashboard UIYYYYYYYYY
TiDB Dashboard Continuous ProfilingYYYExperimentalExperimentalNNNN
TiDB Dashboard Top SQLYYYExperimentalNNNNN
TiDB Dashboard SQL DiagnosticsExperimentalExperimentalExperimentalExperimentalExperimentalExperimentalExperimentalExperimentalExperimental
Information schemaYYYYYYYYY
Metrics schemaYYYYYYYYY
Statements summary tablesYYYYYYYYY
Slow query logYYYYYYYYY
TiUP deploymentYYYYYYYYY
Ansible deploymentNNNNNNNNDeprecated
Kubernetes operatorYYYYYYYYY
Built-in physical backupYYYYYYYYY
Global KillYYExperimentalExperimentalExperimentalExperimentalExperimentalExperimentalExperimental
Lock ViewYYYYYYExperimentalExperimentalExperimental
SHOW CONFIGYYYYYYYYY
SET CONFIGYYExperimentalExperimentalExperimentalExperimentalExperimentalExperimentalExperimental
DM WebUIExperimentalExperimentalExperimentalNNNNNN
Foreground Quota LimiterYExperimentalExperimentalNNNNNN

  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.