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