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.35.25.15.04.0
Numeric typesYYYYY
Date and time typesYYYYY
String typesYYYYY
JSON typeExperimentalExperimentalExperimentalExperimentalExperimental
Control flow functionsYYYYY
String functionsYYYYY
Numeric functions and operatorsYYYYY
Date and time functionsYYYYY
Bit functions and operatorsYYYYY
Cast functions and operatorsYYYYY
Encryption and compression functionsYYYYY
Information functionsYYYYY
JSON functionsExperimentalExperimentalExperimentalExperimentalExperimental
Aggregation functionsYYYYY
Window functionsYYYYY
Miscellaneous functionsYYYYY
OperatorsYYYYY
Character sets and collations 1YYYYY

Indexing and constraints

Indexing and constraints5.35.25.15.04.0
Expression indexesExperimentalExperimentalExperimentalExperimentalExperimental
Columnar storage (TiFlash)YYYYY
RocksDB engineYYYYY
Titan pluginYYYYY
Invisible indexesYYYYN
Composite PRIMARY KEYYYYYY
Unique indexesYYYYY
Clustered index on integer PRIMARY KEYYYYYY
Clustered index on composite or non-integer keyYYYYN

SQL statements

SQL statements 25.35.25.15.04.0
Basic SELECT, INSERT, UPDATE, DELETE, REPLACEYYYYY
INSERT ON DUPLICATE KEY UPDATEYYYYY
LOAD DATA INFILEYYYYY
SELECT INTO OUTFILEYYYYY
INNER JOIN, LEFT\|RIGHT [OUTER] JOINYYYYY
UNION, UNION ALLYYYYY
EXCEPT and INTERSECT operatorsYYYYN
GROUP BY, ORDER BYYYYYY
Window FunctionsYYYYY
Common Table Expressions (CTE)YYYNN
START TRANSACTION, COMMIT, ROLLBACKYYYYY
EXPLAINYYYYY
EXPLAIN ANALYZEYYYYY
User-defined variablesExperimentalExperimentalExperimentalExperimentalExperimental

Advanced SQL features

Advanced SQL features5.35.25.15.04.0
Prepared statement cacheYExperimentalExperimentalExperimentalExperimental
SQL plan management (SPM)YYYYY
Coprocessor cacheYYYYExperimental
Stale ReadYYYNN
Follower readsYYYYY
Read historical data (tidb_snapshot)YYYYY
Optimizer hintsYYYYY
MPP Execution EngineYYYYN
Index MergeExperimentalExperimentalExperimentalExperimentalExperimental
Placement Rules in SQLExperimentalNNNN

Data definition language (DDL)

Data definition language (DDL)5.35.25.15.04.0
Basic CREATE, DROP, ALTER, RENAME, TRUNCATEYYYYY
Generated columnsExperimentalExperimentalExperimentalExperimentalExperimental
ViewsYYYYY
SequencesYYYYY
Auto incrementYYYYY
Auto randomYYYYY
DDL algorithm assertionsYYYYY
Multi schema change: add column(s)ExperimentalExperimentalExperimentalExperimentalExperimental
Change column typeYYYNN
Temporary tablesYNNNN

Transactions

Transactions5.35.25.15.04.0
Async commitYYYYN
1PCYYYYN
Large transactions (10GB)YYYYY
Pessimistic transactionsYYYYY
Optimistic transactionsYYYYY
Repeatable-read isolation (snapshot isolation)YYYYY
Read-committed isolationYYYYY

Partitioning

Partitioning5.35.25.15.04.0
Range partitioningYYYYY
Hash partitioningYYYYY
List partitioningExperimentalExperimentalExperimentalExperimentalN
List COLUMNS partitioningExperimentalExperimentalExperimentalExperimentalN
EXCHANGE PARTITIONExperimentalExperimentalExperimentalExperimentalN
Dynamic PruningExperimentalExperimentalExperimentalNN

Statistics

Statistics5.35.25.15.04.0
CMSketchDeprecatedDeprecatedDeprecatedDeprecatedY
HistogramsYYYYY
Extended statistics (multiple columns)ExperimentalExperimentalExperimentalExperimentalN
Statistics FeedbackExperimentalExperimentalExperimentalExperimentalExperimental
Fast AnalyzeExperimentalExperimentalExperimentalExperimentalExperimental

Security

Security5.35.25.15.04.0
Transparent layer security (TLS)YYYYY
Encryption at rest (TDE)YYYYY
Role-based authentication (RBAC)YYYYY
Certificate-based authenticationYYYYY
caching_sha2_password authenticationYYNNN
MySQL compatible GRANT systemYYYYY
Dynamic PrivilegesYYYNN
Security Enhanced ModeYYYNN
Redacted Log FilesYYYYN

Data import and export

Data import and export5.35.25.15.04.0
Fast Importer (TiDB Lightning)YYYYY
mydumper logical dumperDeprecatedDeprecatedDeprecatedDeprecatedDeprecated
Dumpling logical dumperYYYYY
Transactional LOAD DATAYYYYN 3
Database migration toolkit (DM)YYYYY
TiDB BinlogYYYYY
Change data capture (CDC)YYYYY

Management, observability, and tools

Management, observability, and tools5.35.25.15.04.0
TiDB DashboardYYYYY
SQL diagnosticsExperimentalExperimentalExperimentalExperimentalExperimental
Information schemaYYYYY
Metrics schemaYYYYY
Statements summary tablesYYYYY
Slow query logYYYYY
TiUP deploymentYYYYY
Ansible deploymentNNNNDeprecated
Kubernetes operatorYYYYY
Built-in physical backupYYYYY
Global KillExperimentalExperimentalExperimentalExperimentalExperimental
Lock ViewYYExperimentalExperimentalExperimental
SHOW CONFIGExperimentalExperimentalExperimentalExperimentalExperimental
SET CONFIGExperimentalExperimentalExperimentalExperimentalExperimental
Continuous ProfilingExperimentalNNNN

  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?