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 | 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?