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 operators | 5.3 | 5.2 | 5.1 | 5.0 | 4.0 |
---|---|---|---|---|---|
Numeric types | Y | Y | Y | Y | Y |
Date and time types | Y | Y | Y | Y | Y |
String types | Y | Y | Y | Y | Y |
JSON type | Experimental | Experimental | Experimental | Experimental | Experimental |
Control flow functions | Y | Y | Y | Y | Y |
String functions | Y | Y | Y | Y | Y |
Numeric functions and operators | Y | Y | Y | Y | Y |
Date and time functions | Y | Y | Y | Y | Y |
Bit functions and operators | Y | Y | Y | Y | Y |
Cast functions and operators | Y | Y | Y | Y | Y |
Encryption and compression functions | Y | Y | Y | Y | Y |
Information functions | Y | Y | Y | Y | Y |
JSON functions | Experimental | Experimental | Experimental | Experimental | Experimental |
Aggregation functions | Y | Y | Y | Y | Y |
Window functions | Y | Y | Y | Y | Y |
Miscellaneous functions | Y | Y | Y | Y | Y |
Operators | Y | Y | Y | Y | Y |
Character sets and collations 1 | Y | Y | Y | Y | Y |
Indexing and constraints
Indexing and constraints | 5.3 | 5.2 | 5.1 | 5.0 | 4.0 |
---|---|---|---|---|---|
Expression indexes | Experimental | Experimental | Experimental | Experimental | Experimental |
Columnar storage (TiFlash) | Y | Y | Y | Y | Y |
RocksDB engine | Y | Y | Y | Y | Y |
Titan plugin | Y | Y | Y | Y | Y |
Invisible indexes | Y | Y | Y | Y | N |
Composite PRIMARY KEY | Y | Y | Y | Y | Y |
Unique indexes | Y | Y | Y | Y | Y |
Clustered index on integer PRIMARY KEY | Y | Y | Y | Y | Y |
Clustered index on composite or non-integer key | Y | Y | Y | Y | N |
SQL statements
SQL statements 2 | 5.3 | 5.2 | 5.1 | 5.0 | 4.0 |
---|---|---|---|---|---|
Basic SELECT , INSERT , UPDATE , DELETE , REPLACE | Y | Y | Y | Y | Y |
INSERT ON DUPLICATE KEY UPDATE | Y | Y | Y | Y | Y |
LOAD DATA INFILE | Y | Y | Y | Y | Y |
SELECT INTO OUTFILE | Y | Y | Y | Y | Y |
INNER JOIN , LEFT\|RIGHT [OUTER] JOIN | Y | Y | Y | Y | Y |
UNION , UNION ALL | Y | Y | Y | Y | Y |
EXCEPT and INTERSECT operators | Y | Y | Y | Y | N |
GROUP BY , ORDER BY | Y | Y | Y | Y | Y |
Window Functions | Y | Y | Y | Y | Y |
Common Table Expressions (CTE) | Y | Y | Y | N | N |
START TRANSACTION , COMMIT , ROLLBACK | Y | Y | Y | Y | Y |
EXPLAIN | Y | Y | Y | Y | Y |
EXPLAIN ANALYZE | Y | Y | Y | Y | Y |
User-defined variables | Experimental | Experimental | Experimental | Experimental | Experimental |
Table Lock | Experimental | Experimental | Experimental | Experimental | Experimental |
Advanced SQL features
Advanced SQL features | 5.3 | 5.2 | 5.1 | 5.0 | 4.0 |
---|---|---|---|---|---|
Prepared statement cache | Y | Experimental | Experimental | Experimental | Experimental |
SQL plan management (SPM) | Y | Y | Y | Y | Y |
Coprocessor cache | Y | Y | Y | Y | Experimental |
Stale Read | Y | Y | Y | N | N |
Follower reads | Y | Y | Y | Y | Y |
Read historical data (tidb_snapshot) | Y | Y | Y | Y | Y |
Optimizer hints | Y | Y | Y | Y | Y |
MPP Execution Engine | Y | Y | Y | Y | N |
Index Merge | Experimental | Experimental | Experimental | Experimental | Experimental |
Placement Rules in SQL | Experimental | N | N | N | N |
Data definition language (DDL)
Data definition language (DDL) | 5.3 | 5.2 | 5.1 | 5.0 | 4.0 |
---|---|---|---|---|---|
Basic CREATE , DROP , ALTER , RENAME , TRUNCATE | Y | Y | Y | Y | Y |
Generated columns | Experimental | Experimental | Experimental | Experimental | Experimental |
Views | Y | Y | Y | Y | Y |
Sequences | Y | Y | Y | Y | Y |
Auto increment | Y | Y | Y | Y | Y |
Auto random | Y | Y | Y | Y | Y |
DDL algorithm assertions | Y | Y | Y | Y | Y |
Multi-schema change: add columns | Experimental | Experimental | Experimental | Experimental | Experimental |
Change column type | Y | Y | Y | N | N |
Temporary tables | Y | N | N | N | N |
Transactions
Transactions | 5.3 | 5.2 | 5.1 | 5.0 | 4.0 |
---|---|---|---|---|---|
Async commit | Y | Y | Y | Y | N |
1PC | Y | Y | Y | Y | N |
Large transactions (10GB) | Y | Y | Y | Y | Y |
Pessimistic transactions | Y | Y | Y | Y | Y |
Optimistic transactions | Y | Y | Y | Y | Y |
Repeatable-read isolation (snapshot isolation) | Y | Y | Y | Y | Y |
Read-committed isolation | Y | Y | Y | Y | Y |
Partitioning
Partitioning | 5.3 | 5.2 | 5.1 | 5.0 | 4.0 |
---|---|---|---|---|---|
Range partitioning | Y | Y | Y | Y | Y |
Hash partitioning | Y | Y | Y | Y | Y |
List partitioning | Experimental | Experimental | Experimental | Experimental | N |
List COLUMNS partitioning | Experimental | Experimental | Experimental | Experimental | N |
EXCHANGE PARTITION | Experimental | Experimental | Experimental | Experimental | N |
Dynamic Pruning | Experimental | Experimental | Experimental | N | N |
Statistics
Statistics | 5.3 | 5.2 | 5.1 | 5.0 | 4.0 |
---|---|---|---|---|---|
CMSketch | Deprecated | Deprecated | Deprecated | Deprecated | Y |
Histograms | Y | Y | Y | Y | Y |
Extended statistics (multiple columns) | Experimental | Experimental | Experimental | Experimental | N |
Statistics Feedback | Experimental | Experimental | Experimental | Experimental | Experimental |
Security
Security | 5.3 | 5.2 | 5.1 | 5.0 | 4.0 |
---|---|---|---|---|---|
Transparent layer security (TLS) | Y | Y | Y | Y | Y |
Encryption at rest (TDE) | Y | Y | Y | Y | Y |
Role-based authentication (RBAC) | Y | Y | Y | Y | Y |
Certificate-based authentication | Y | Y | Y | Y | Y |
caching_sha2_password authentication | Y | Y | N | N | N |
MySQL compatible GRANT system | Y | Y | Y | Y | Y |
Dynamic Privileges | Y | Y | Y | N | N |
Security Enhanced Mode | Y | Y | Y | N | N |
Redacted Log Files | Y | Y | Y | Y | N |
Data import and export
Data import and export | 5.3 | 5.2 | 5.1 | 5.0 | 4.0 |
---|---|---|---|---|---|
Fast Importer (TiDB Lightning) | Y | Y | Y | Y | Y |
mydumper logical dumper | Deprecated | Deprecated | Deprecated | Deprecated | Deprecated |
Dumpling logical dumper | Y | Y | Y | Y | Y |
Transactional LOAD DATA | Y | Y | Y | Y | N 3 |
Database migration toolkit (DM) | Y | Y | Y | Y | Y |
TiDB Binlog | Y | Y | Y | Y | Y |
Change data capture (CDC) | Y | Y | Y | Y | Y |
Management, observability, and tools
Management, observability, and tools | 5.3 | 5.2 | 5.1 | 5.0 | 4.0 |
---|---|---|---|---|---|
TiDB Dashboard | Y | Y | Y | Y | Y |
SQL diagnostics | Experimental | Experimental | Experimental | Experimental | Experimental |
Information schema | Y | Y | Y | Y | Y |
Metrics schema | Y | Y | Y | Y | Y |
Statements summary tables | Y | Y | Y | Y | Y |
Slow query log | Y | Y | Y | Y | Y |
TiUP deployment | Y | Y | Y | Y | Y |
Ansible deployment | N | N | N | N | Deprecated |
Kubernetes operator | Y | Y | Y | Y | Y |
Built-in physical backup | Y | Y | Y | Y | Y |
Global Kill | Experimental | Experimental | Experimental | Experimental | Experimental |
Lock View | Y | Y | Experimental | Experimental | Experimental |
SHOW CONFIG | Experimental | Experimental | Experimental | Experimental | Experimental |
SET CONFIG | Y | Y | Y | Y | Y |
Continuous Profiling | Experimental | N | N | N | N |
- TiDB incorrectly treats latin1 as a subset of utf8. See TiDB #18955 for more details.↩
- See Statement Reference for a full list of SQL statements supported.↩
- For TiDB v4.0, the
LOAD DATA
transaction does not guarantee atomicity.↩