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