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.38.28.17.57.16.56.15.45.35.25.1
Numeric typesYYYYYYYYYYY
Date and time typesYYYYYYYYYYY
String typesYYYYYYYYYYY
JSON typeYYYYYYEEEEE
Control flow functionsYYYYYYYYYYY
String functionsYYYYYYYYYYY
Numeric functions and operatorsYYYYYYYYYYY
Date and time functionsYYYYYYYYYYY
Bit functions and operatorsYYYYYYYYYYY
Cast functions and operatorsYYYYYYYYYYY
Encryption and compression functionsYYYYYYYYYYY
Information functionsYYYYYYYYYYY
JSON functionsYYYYYYEEEEE
Aggregation functionsYYYYYYYYYYY
Window functionsYYYYYYYYYYY
Miscellaneous functionsYYYYYYYYYYY
OperatorsYYYYYYYYYYY
Character sets and collations 1YYYYYYYYYYY
User-level lockYYYYYYYNNNN

Indexing and constraints

Indexing and constraints8.38.28.17.57.16.56.15.45.35.25.1
Expression indexes 2YYYYYYEEEEE
Columnar storage (TiFlash)YYYYYYYYYYY
Use FastScan to accelerate queries in OLAP scenariosYYYYYENNNNN
RocksDB engineYYYYYYYYYYY
Titan pluginYYYYYYYYYYY
Titan Level MergeEEEEEEEEEEE
Use buckets to improve scan concurrencyEEEEEEENNNN
Invisible indexesYYYYYYYYYYY
Composite PRIMARY KEYYYYYYYYYYYY
CHECK constraintsYYYYNNNNNNN
Unique indexesYYYYYYYYYYY
Clustered index on integer PRIMARY KEYYYYYYYYYYYY
Clustered index on composite or non-integer keyYYYYYYYYYYY
Multi-valued indexesYYYYYNNNNNN
Foreign keyEEEEENNNNNN
TiFlash late materializationYYYYYNNNNNN
Global indexENNNNNNNNNN

SQL statements

SQL statements 38.38.28.17.57.16.56.15.45.35.25.1
Basic SELECT, INSERT, UPDATE, DELETE, REPLACEYYYYYYYYYYY
INSERT ON DUPLICATE KEY UPDATEYYYYYYYYYYY
LOAD DATA INFILEYYYYYYYYYYY
SELECT INTO OUTFILEYYYYYYYYYYY
INNER JOIN, LEFT|RIGHT [OUTER] JOINYYYYYYYYYYY
UNION, UNION ALLYYYYYYYYYYY
EXCEPT and INTERSECT operatorsYYYYYYYYYYY
GROUP BY, ORDER BYYYYYYYYYYYY
GROUP BY modifierYYYYNNNNNNN
Window FunctionsYYYYYYYYYYY
Common Table Expressions (CTE)YYYYYYYYYYY
START TRANSACTION, COMMIT, ROLLBACKYYYYYYYYYYY
EXPLAINYYYYYYYYYYY
EXPLAIN ANALYZEYYYYYYYYYYY
User-defined variablesEEEEEEEEEEE
BATCH [ON COLUMN] LIMIT INTEGER DELETEYYYYYYYNNNN
BATCH [ON COLUMN] LIMIT INTEGER INSERT/UPDATE/REPLACEYYYYYYNNNNN
ALTER TABLE ... COMPACTYYYYYYENNNN
Table LockEEEEEEEEEEE
TiFlash Query Result MaterializationYYYYYENNNNN

Advanced SQL features

Advanced SQL features8.38.28.17.57.16.56.15.45.35.25.1
Prepared statement cacheYYYYYYYYYEE
Non-prepared statement cacheYYYYENNNNNN
SQL bindingYYYYYYYYYYY
Cross-database bindingYYYNNNNNNNN
Create bindings according to historical execution plansYYYYYENNNNN
Coprocessor cacheYYYYYYYYYYY
Stale ReadYYYYYYYYYYY
Follower readsYYYYYYYYYYY
Read historical data (tidb_snapshot)YYYYYYYYYYY
Optimizer hintsYYYYYYYYYYY
MPP execution engineYYYYYYYYYYY
MPP execution engine - compression exchangeYYYYYNNNNNN
TiFlash Pipeline ModelYYYYNNNNNNN
TiFlash replica selection strategyYYYYNNNNNNN
Index MergeYYYYYYYYEEE
Placement Rules in SQLYYYYYYYEENN
Cascades PlannerEEEEEEEEEEE
Runtime FilterYYYYNNNNNNN

Data definition language (DDL)

Data definition language (DDL)8.38.28.17.57.16.56.15.45.35.25.1
Basic CREATE, DROP, ALTER, RENAME, TRUNCATEYYYYYYYYYYY
Generated columnsYYYYYEEEEEE
ViewsYYYYYYYYYYY
SequencesYYYYYYYYYYY
Auto incrementYYYYYY4YYYYY
Auto randomYYYYYYYYYYY
TTL (Time to Live)YYYYYENNNNN
DDL algorithm assertionsYYYYYYYYYYY
Multi-schema change: add columnsYYYYYYEEEEE
Change column typeYYYYYYYYYYY
Temporary tablesYYYYYYYYYNN
Concurrent DDL statementsYYYYYYNNNNN
Acceleration of ADD INDEX and CREATE INDEXYYYYYYNNNNN
Metadata lockYYYYYYNNNNN
FLASHBACK CLUSTERYYYYYYNNNNN
Pause/Resume DDLYYYYNNNNNNN
TiDB Accelerated Table CreationEEENNNNNNNN
Configure BDR role to replicate DDL statements in BDR modeYEENNNNNNNN

Transactions

Transactions8.38.28.17.57.16.56.15.45.35.25.1
Async commitYYYYYYYYYYY
1PCYYYYYYYYYYY
Large transactions (1 TiB)YYYYYYYYYYY
Pessimistic transactionsYYYYYYYYYYY
Optimistic transactionsYYYYYYYYYYY
Repeatable-read isolation (snapshot isolation)YYYYYYYYYYY
Read-committed isolationYYYYYYYYYYY
Automatically terminating long-running idle transactionsYYYNNNNNNNN
Bulk DML execution mode (tidb_dml_type = "bulk")EEENNNNNNNN

Partitioning

Partitioning8.38.28.17.57.16.56.15.45.35.25.1
Range partitioningYYYYYYYYYYY
Hash partitioningYYYYYYYYYYY
Key partitioningYYYYYNNNNNN
List partitioningYYYYYYYEEEE
List COLUMNS partitioningYYYYYYYEEEE
Default partition for List and List COLUMNS partitioned tablesYYYYNNNNNNN
EXCHANGE PARTITIONYYYYYYEEEEE
REORGANIZE PARTITIONYYYYYNNNNNN
COALESCE PARTITIONYYYYYNNNNNN
Dynamic pruningYYYYYYYEEEE
Range COLUMNS partitioningYYYYYYNNNNN
Range INTERVAL partitioningYYYYYENNNNN
Convert a partitioned table to a non-partitioned tableYYYYNNNNNNN
Partition an existing tableYYYYNNNNNNN

Statistics

Statistics8.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 defaultYY
HistogramsYYYYYYYYYYY
Extended statisticsEEEEEEEEEEE
Statistics feedbackNNNNNNDeprecatedDeprecatedEEE
Automatically update statisticsYYYYYYYYYYY
Dynamic pruningYYYYYYYEEEE
Collect statistics for PREDICATE COLUMNSYEEEEEEENNN
Control the memory quota for collecting statisticsEEEEEENNNNN
Randomly sample about 10000 rows of data to quickly build statisticsDeprecatedDeprecatedDeprecatedDeprecatedEEEEEEE
Lock statisticsYYYYEENNNNN
Lightweight statistics initializationYYYYENNNNNN
Show the progress of collecting statisticsYYYYNNNNNNN

Security

Security8.38.28.17.57.16.56.15.45.35.25.1
Transparent layer security (TLS)YYYYYYYYYYY
Encryption at rest (TDE)YYYYYYYYYYY
Role-based authentication (RBAC)YYYYYYYYYYY
Certificate-based authenticationYYYYYYYYYYY
caching_sha2_password authenticationYYYYYYYYYYN
tidb_sm3_password authenticationYYYYYYNNNNN
tidb_auth_token authenticationYYYYYYNNNNN
authentication_ldap_sasl authenticationYYYYNNNNNNN
authentication_ldap_simple authenticationYYYYYNNNNNN
Password managementYYYYYYNNNNN
MySQL compatible GRANT systemYYYYYYYYYYY
Dynamic PrivilegesYYYYYYYYYYY
Security Enhanced ModeYYYYYYYYYYY
Redacted Log FilesYYYYYYYYYYY

Data import and export

Data import and export8.38.28.17.57.16.56.15.45.35.25.1
Fast import using TiDB LightningYYYYYYYYYYY
Fast import using the IMPORT INTO statementYYYYNNNNNNN
mydumper logical dumperDeprecatedDeprecatedDeprecatedDeprecatedDeprecatedDeprecatedDeprecatedDeprecatedDeprecatedDeprecatedDeprecated
Dumpling logical dumperYYYYYYYYYYY
Transactional LOAD DATA 5YYYYYYYYYYY
Database migration toolkit (DM)YYYYYYYYYYY
TiDB Binlog 6DeprecatedYYYYYYYYYY
Change data capture (CDC)YYYYYYYYYYY
Stream data to Amazon S3, GCS, Azure Blob Storage, and NFS through TiCDCYYYYYENNNNN
TiCDC supports bidirectional replication between two TiDB clustersYYYYYYNNNNN
TiCDC OpenAPI v2YYYYYNNNNNN
DM supports migrating MySQL 8.0YYYEEEENNNN

Management, observability, and tools

Management, observability, and tools8.38.28.17.57.16.56.15.45.35.25.1
TiDB Dashboard UIYYYYYYYYYYY
TiDB Dashboard Continuous ProfilingYYYYYYYEENN
TiDB Dashboard Top SQLYYYYYYYENNN
TiDB Dashboard SQL DiagnosticsYYYYYYEEEEE
TiDB Dashboard Cluster DiagnosticsYYYYYYEEEEE
TiKV-FastTune dashboardEEEEEEEEEEE
Information schemaYYYYYYYYYYY
Metrics schemaYYYYYYYYYYY
Statements summary tablesYYYYYYYYYYY
Statements summary tables - summary persistenceEEEEENNNNNN
Slow query logYYYYYYYYYYY
TiUP deploymentYYYYYYYYYYY
Kubernetes operatorYYYYYYYYYYY
Built-in physical backupYYYYYYYYYYY
Global KillYYYYYYYEEEE
Lock ViewYYYYYYYYYYE
SHOW CONFIGYYYYYYYYYYY
SET CONFIGYYYYYYYEEEE
DM WebUIEEEEEEENNNN
Foreground Quota LimiterYYYYYYENNNN
Background Quota LimiterEEEEEENNNNN
EBS volume snapshot backup and restoreYYYYYYNNNNN
PITRYYYYYYNNNNN
Global memory controlYYYYYYNNNNN
Cross-cluster RawKV replicationEEEEEENNNNN
Green GCEEEEEEEEEEE
Resource controlYYYYYNNNNNN
Runaway Queries managementYYYENNNNNNN
Background tasks managementEEEENNNNNNN
TiFlash Disaggregated Storage and Compute Architecture and S3 SupportYYYYENNNNNN
Selecting TiDB nodes for the Distributed eXecution Framework (DXF) tasksYYYNNNNNNN
PD Follower Proxy (controlled by tidb_enable_tso_follower_proxy)YYYYYYYYYNN
Active PD Follower (controlled by pd_enable_follower_handle_region)EEENNNNNNNN
PD microservicesEEENNNNNNNN
TiDB Distributed eXecution Framework (DXF)YYYYENNNNNN
Global SortYYYENNNNNNN
TiProxyYYYNNNNNNNN

  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, with removal planned for a future release. For incremental data replication, use TiCDC instead. For point-in-time recovery (PITR), use 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?