TiDB Features

This document lists the features supported in different TiDB versions, including Long-Term Support (LTS) versions and Development Milestone Release (DMR) versions after the latest LTS version.

You can try out TiDB features on TiDB Playground.

Data types, functions, and operators

Data types, functions, and operators8.48.38.28.17.57.16.56.15.45.35.25.1
Numeric typesYYYYYYYYYYYY
Date and time typesYYYYYYYYYYYY
String typesYYYYYYYYYYYY
JSON typeYYYYYYYEEEEE
Vectort typesENNNNNNNNNNN
Control flow functionsYYYYYYYYYYYY
String functionsYYYYYYYYYYYY
Numeric functions and operatorsYYYYYYYYYYYY
Date and time functionsYYYYYYYYYYYY
Bit functions and operatorsYYYYYYYYYYYY
Cast functions and operatorsYYYYYYYYYYYY
Encryption and compression functionsYYYYYYYYYYYY
Vector functions and operatorsENNNNNNNNNNN
Information functionsYYYYYYYYYYYY
JSON functionsYYYYYYYEEEEE
Aggregation functionsYYYYYYYYYYYY
Window functionsYYYYYYYYYYYY
Miscellaneous functionsYYYYYYYYYYYY
OperatorsYYYYYYYYYYYY
Character sets and collations 1YYYYYYYYYYYY
User-level lockYYYYYYYYNNNN

Indexing and constraints

Indexing and constraints8.48.38.28.17.57.16.56.15.45.35.25.1
Expression indexes 2YYYYYYYEEEEE
Columnar storage (TiFlash)YYYYYYYYYYYY
Use FastScan to accelerate queries in OLAP scenariosYYYYYYENNNNN
RocksDB engineYYYYYYYYYYYY
Titan pluginYYYYYYYYYYYY
Titan Level MergeEEEEEEEEEEEE
Use buckets to improve scan concurrencyEEEEEEEENNNN
Invisible indexesYYYYYYYYYYYY
Composite PRIMARY KEYYYYYYYYYYYYY
CHECK constraintsYYYYYNNNNNNN
Unique indexesYYYYYYYYYYYY
Clustered index on integer PRIMARY KEYYYYYYYYYYYYY
Clustered index on composite or non-integer keyYYYYYYYYYYYY
Multi-valued indexesYYYYYYNNNNNN
Foreign keyEEEEEENNNNNN
TiFlash late materializationYYYYYYNNNNNN
Global indexYENNNNNNNNNN
Vector indexENNNNNNNNNNN

SQL statements

SQL statements 38.48.38.28.17.57.16.56.15.45.35.25.1
Basic SELECT, INSERT, UPDATE, DELETE, REPLACEYYYYYYYYYYYY
INSERT ON DUPLICATE KEY UPDATEYYYYYYYYYYYY
LOAD DATA INFILEYYYYYYYYYYYY
SELECT INTO OUTFILEYYYYYYYYYYYY
INNER JOIN, LEFT|RIGHT [OUTER] JOINYYYYYYYYYYYY
UNION, UNION ALLYYYYYYYYYYYY
EXCEPT and INTERSECT operatorsYYYYYYYYYYYY
GROUP BY, ORDER BYYYYYYYYYYYYY
GROUP BY modifierYYYYYNNNNNNN
Window FunctionsYYYYYYYYYYYY
Common Table Expressions (CTE)YYYYYYYYYYYY
START TRANSACTION, COMMIT, ROLLBACKYYYYYYYYYYYY
EXPLAINYYYYYYYYYYYY
EXPLAIN ANALYZEYYYYYYYYYYYY
User-defined variablesEEEEEEEEEEEE
BATCH [ON COLUMN] LIMIT INTEGER DELETEYYYYYYYYNNNN
BATCH [ON COLUMN] LIMIT INTEGER INSERT/UPDATE/REPLACEYYYYYYYNNNNN
ALTER TABLE ... COMPACTYYYYYYYENNNN
Table LockEEEEEEEEEEEE
TiFlash Query Result MaterializationYYYYYYENNNNN

Advanced SQL features

Advanced SQL features8.48.38.28.17.57.16.56.15.45.35.25.1
Vector searchENNNNNNNNNNN
Prepared statement cacheYYYYYYYYYYEE
Non-prepared statement cacheYYYYYENNNNNN
Instance-level execution plan cacheENNNNNNNNNNN
SQL bindingYYYYYYYYYYYY
Cross-database bindingYYYYNNNNNNNN
Create bindings according to historical execution plansYYYYYYENNNNN
Coprocessor cacheYYYYYYYYYYYY
Stale ReadYYYYYYYYYYYY
Follower readsYYYYYYYYYYYY
Read historical data (tidb_snapshot)YYYYYYYYYYYY
Optimizer hintsYYYYYYYYYYYY
MPP execution engineYYYYYYYYYYYY
MPP execution engine - compression exchangeYYYYYYNNNNNN
TiFlash Pipeline ModelYYYYYNNNNNNN
TiFlash replica selection strategyYYYYYNNNNNNN
Index MergeYYYYYYYYYEEE
Placement Rules in SQLYYYYYYYYEENN
Cascades PlannerEEEEEEEEEEEE
Runtime FilterYYYYYNNNNNNN

Data definition language (DDL)

Data definition language (DDL)8.48.38.28.17.57.16.56.15.45.35.25.1
Basic CREATE, DROP, ALTER, RENAME, TRUNCATEYYYYYYYYYYYY
Generated columnsYYYYYYEEEEEE
ViewsYYYYYYYYYYYY
SequencesYYYYYYYYYYYY
Auto incrementYYYYYYY4YYYYY
Auto randomYYYYYYYYYYYY
TTL (Time to Live)YYYYYYENNNNN
DDL algorithm assertionsYYYYYYYYYYYY
Multi-schema change: add columnsYYYYYYYEEEEE
Change column typeYYYYYYYYYYYY
Temporary tablesYYYYYYYYYYNN
Concurrent DDL statementsYYYYYYYNNNNN
Acceleration of ADD INDEX and CREATE INDEXYYYYYYYNNNNN
Metadata lockYYYYYYYNNNNN
FLASHBACK CLUSTERYYYYYYYNNNNN
Pause/Resume DDLYYYYYNNNNNNN
TiDB Accelerated Table CreationEEEENNNNNNNN
Configure BDR role to replicate DDL statements in BDR modeYYEENNNNNNNN

Transactions

Transactions8.48.38.28.17.57.16.56.15.45.35.25.1
Async commitYYYYYYYYYYYY
1PCYYYYYYYYYYYY
Large transactions (1 TiB)YYYYYYYYYYYY
Pessimistic transactionsYYYYYYYYYYYY
Optimistic transactionsYYYYYYYYYYYY
Repeatable-read isolation (snapshot isolation)YYYYYYYYYYYY
Read-committed isolationYYYYYYYYYYYY
Automatically terminating long-running idle transactionsYYYYNNNNNNNN
Bulk DML execution mode (tidb_dml_type = "bulk")EEENNNNNNNN

Partitioning

Partitioning8.48.38.28.17.57.16.56.15.45.35.25.1
Range partitioningYYYYYYYYYYYY
Hash partitioningYYYYYYYYYYYY
Key partitioningYYYYYYNNNNNN
List partitioningYYYYYYYYEEEE
List COLUMNS partitioningYYYYYYYYEEEE
Default partition for List and List COLUMNS partitioned tablesYYYYYNNNNNNN
EXCHANGE PARTITIONYYYYYYYEEEEE
REORGANIZE PARTITIONYYYYYYNNNNNN
COALESCE PARTITIONYYYYYYNNNNNN
Dynamic pruningYYYYYYYYEEEE
Range COLUMNS partitioningYYYYYYYNNNNN
Range INTERVAL partitioningYYYYYYENNNNN
Convert a partitioned table to a non-partitioned tableYYYYYNNNNNNN
Partition an existing tableYYYYYNNNNNNN

Statistics

Statistics8.48.38.28.17.57.16.56.15.45.35.25.1
CMSketchDisabled by defaultDisabled by defaultDisabled by defaultDisabled by defaultDisabled by defaultDisabled by defaultDisabled by defaultDisabled by defaultDisabled by defaultDisabled by defaultYY
HistogramsYYYYYYYYYYYY
Extended statisticsEEEEEEEEEEEE
Statistics feedbackNNNNNNNDeprecatedDeprecatedEEE
Automatically update statisticsYYYYYYYYYYYY
Dynamic pruningYYYYYYYYEEEE
Collect statistics for PREDICATE COLUMNSYYEEEEEEENNN
Control the memory quota for collecting statisticsEEEEEEEENNNN
Randomly sample about 10000 rows of data to quickly build statisticsDeprecatedDeprecatedDeprecatedDeprecatedDeprecatedEEEEEEE
Lock statisticsYYYYYEENNNNN
Lightweight statistics initializationYYYYYENNNNNN
Show the progress of collecting statisticsYYYYYNNNNNNN

Security

Security8.48.38.28.17.57.16.56.15.45.35.25.1
Transparent layer security (TLS)YYYYYYYYYYYY
Encryption at rest (TDE)YYYYYYYYYYYY
Role-based authentication (RBAC)YYYYYYYYYYYY
Certificate-based authenticationYYYYYYYYYYYY
caching_sha2_password authenticationYYYYYYYYYYYN
tidb_sm3_password authenticationYYYYYYYNNNNN
tidb_auth_token authenticationYYYYYYYNNNNN
authentication_ldap_sasl authenticationYYYYYNNNNNNN
authentication_ldap_simple authenticationYYYYYYNNNNNN
Password managementYYYYYYYNNNNN
MySQL compatible GRANT systemYYYYYYYYYYYY
Dynamic PrivilegesYYYYYYYYYYYY
Security Enhanced ModeYYYYYYYYYYYY
Redacted Log FilesYYYYYYYYYYYY

Data import and export

Data import and export8.48.38.28.17.57.16.56.15.45.35.25.1
Fast import using TiDB LightningYYYYYYYYYYYY
Fast import using the IMPORT INTO statementYYYYYNNNNNNN
mydumper logical dumperDeprecatedDeprecatedDeprecatedDeprecatedDeprecatedDeprecatedDeprecatedDeprecatedDeprecatedDeprecatedDeprecatedDeprecated
Dumpling logical dumperYYYYYYYYYYYY
Transactional LOAD DATA 5YYYYYYYYYYYY
Database migration toolkit (DM)YYYYYYYYYYYY
TiDB Binlog 6RemovedDeprecatedYYYYYYYYYY
Change data capture (CDC)YYYYYYYYYYYY
Stream data to Amazon S3, GCS, Azure Blob Storage, and NFS through TiCDCYYYYYYENNNNN
TiCDC supports bidirectional replication between two TiDB clustersYYYYYYYNNNNN
TiCDC OpenAPI v2YYYYYYNNNNNN
DM supports migrating MySQL 8.0YYYYEEEENNNN

Management, observability, and tools

Management, observability, and tools8.48.38.28.17.57.16.56.15.45.35.25.1
TiDB Dashboard UIYYYYYYYYYYYY
TiDB Dashboard Continuous ProfilingYYYYYYYYEENN
TiDB Dashboard Top SQLYYYYYYYYENNN
TiDB Dashboard SQL DiagnosticsYYYYYYYEEEEE
TiDB Dashboard Cluster DiagnosticsYYYYYYYEEEEE
TiKV-FastTune dashboardEEEEEEEEEEEE
Information schemaYYYYYYYYYYYY
Metrics schemaYYYYYYYYYYYY
Statements summary tablesYYYYYYYYYYYY
Statements summary tables - summary persistenceEEEEEENNNNNN
Slow query logYYYYYYYYYYYY
TiUP deploymentYYYYYYYYYYYY
Kubernetes operatorYYYYYYYYYYYY
Built-in physical backupYYYYYYYYYYYY
Global KillYYYYYYYYEEEE
Lock ViewYYYYYYYYYYYE
SHOW CONFIGYYYYYYYYYYYY
SET CONFIGYYYYYYYYEEEE
DM WebUIEEEEEEEENNNN
Foreground Quota LimiterYYYYYYYENNNN
Background Quota LimiterEEEEEEENNNNN
EBS volume snapshot backup and restoreYYYYYYYNNNNN
PITRYYYYYYYNNNNN
Global memory controlYYYYYYYNNNNN
Cross-cluster RawKV replicationEEEEEEENNNNN
Green GCEEEEEEEEEEEE
Resource controlYYYYYYNNNNNN
Runaway Queries managementYYYYENNNNNNN
Background tasks managementEEEEENNNNNNN
TiFlash Disaggregated Storage and Compute Architecture and S3 SupportYYYYYENNNNNN
Selecting TiDB nodes for the Distributed eXecution Framework (DXF) tasksYYYYNNNNNNN
PD Follower Proxy (controlled by tidb_enable_tso_follower_proxy)YYYYYYYYYYNN
Active PD Follower (controlled by pd_enable_follower_handle_region)EEEENNNNNNNN
PD microservicesEEEENNNNNNNN
TiDB Distributed eXecution Framework (DXF)YYYYYENNNNNN
Global SortYYYYENNNNNNN
TiProxyYYYYNNNNNNNN

  1. TiDB incorrectly treats latin1 as a subset of utf8. See TiDB #18955 for more details.
  2. Starting from v6.5.0, the expression indexes created on the functions listed by the tidb_allow_function_for_expression_index system variable have been tested and can be used in production environments, and more functions will be supported in the future releases. For functions not listed by this variable, the corresponding expression indexes are not recommended for use in production environments. See expression indexes for details.
  3. See Statement Reference for a full list of SQL statements supported.
  4. Starting from v6.4.0, TiDB supports high-performance and globally monotonic AUTO_INCREMENT columns
  5. Starting from v7.5.0, TiDB Binlog replication is deprecated. Starting from v8.3.0, TiDB Binlog is fully deprecated. Starting from v8.4.0, TiDB Binlog is removed. For incremental data replication, use TiCDC instead. For point-in-time recovery (PITR), use PITR. Before you upgrade your TiDB cluster to v8.4.0 or later versions, be sure to switch to TiCDC and PITR.
  6. Starting from TiDB v7.0.0, the new parameter FIELDS DEFINED NULL BY and support for importing data from S3 and GCS are experimental features. Starting from v7.6.0, TiDB processes LOAD DATA in transactions in the same way as MySQL. The LOAD DATA statement in a transaction no longer automatically commits the current transaction or starts a new transaction. Moreover, you can explicitly commit or roll back the LOAD DATA statement in a transaction. Additionally, the LOAD DATA statement is affected by the TiDB transaction mode setting (optimistic or pessimistic transaction).

Was this page helpful?