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.28.17.57.16.56.15.45.35.25.1
Numeric typesYYYYYYYYYY
Date and time typesYYYYYYYYYY
String typesYYYYYYYYYY
JSON typeYYYYYEEEEE
Control flow functionsYYYYYYYYYY
String functionsYYYYYYYYYY
Numeric functions and operatorsYYYYYYYYYY
Date and time functionsYYYYYYYYYY
Bit functions and operatorsYYYYYYYYYY
Cast functions and operatorsYYYYYYYYYY
Encryption and compression functionsYYYYYYYYYY
Information functionsYYYYYYYYYY
JSON functionsYYYYYEEEEE
Aggregation functionsYYYYYYYYYY
Window functionsYYYYYYYYYY
Miscellaneous functionsYYYYYYYYYY
OperatorsYYYYYYYYYY
Character sets and collations 1YYYYYYYYYY
User-level lockYYYYYYNNNN

Indexing and constraints

Indexing and constraints8.28.17.57.16.56.15.45.35.25.1
Expression indexes 2YYYYYEEEEE
Columnar storage (TiFlash)YYYYYYYYYY
Use FastScan to accelerate queries in OLAP scenariosYYYYENNNNN
RocksDB engineYYYYYYYYYY
Titan pluginYYYYYYYYYY
Titan Level MergeEEEEEEEEEE
Use buckets to improve scan concurrencyEEEEEENNNN
Invisible indexesYYYYYYYYYY
Composite PRIMARY KEYYYYYYYYYYY
CHECK constraintsYYYNNNNNNN
Unique indexesYYYYYYYYYY
Clustered index on integer PRIMARY KEYYYYYYYYYYY
Clustered index on composite or non-integer keyYYYYYYYYYY
Multi-valued indexesYYYYNNNNNN
Foreign keyEEEENNNNNN
TiFlash late materializationYYYYNNNNNN

SQL statements

SQL statements 38.28.17.57.16.56.15.45.35.25.1
Basic SELECT, INSERT, UPDATE, DELETE, REPLACEYYYYYYYYYY
INSERT ON DUPLICATE KEY UPDATEYYYYYYYYYY
LOAD DATA INFILEYYYYYYYYYY
SELECT INTO OUTFILEYYYYYYYYYY
INNER JOIN, LEFT|RIGHT [OUTER] JOINYYYYYYYYYY
UNION, UNION ALLYYYYYYYYYY
EXCEPT and INTERSECT operatorsYYYYYYYYYY
GROUP BY, ORDER BYYYYYYYYYYY
Window FunctionsYYYYYYYYYY
Common Table Expressions (CTE)YYYYYYYYYY
START TRANSACTION, COMMIT, ROLLBACKYYYYYYYYYY
EXPLAINYYYYYYYYYY
EXPLAIN ANALYZEYYYYYYYYYY
User-defined variablesEEEEEEEEEE
BATCH [ON COLUMN] LIMIT INTEGER DELETEYYYYYYNNNN
BATCH [ON COLUMN] LIMIT INTEGER INSERT/UPDATE/REPLACEYYYYYNNNNN
ALTER TABLE ... COMPACTYYYYYENNNN
Table LockEEEEEEEEEE
TiFlash Query Result MaterializationYYYYENNNNN

Advanced SQL features

Advanced SQL features8.28.17.57.16.56.15.45.35.25.1
Prepared statement cacheYYYYYYYYEE
Non-prepared statement cacheYYYENNNNNN
SQL bindingYYYYYYYYYY
Cross-database bindingYYNNNNNNNN
Create bindings according to historical execution plansYYYYENNNNN
Coprocessor cacheYYYYYYYYYY
Stale ReadYYYYYYYYYY
Follower readsYYYYYYYYYY
Read historical data (tidb_snapshot)YYYYYYYYYY
Optimizer hintsYYYYYYYYYY
MPP execution engineYYYYYYYYYY
MPP execution engine - compression exchangeYYYYNNNNNN
TiFlash Pipeline ModelYYYNNNNNNN
TiFlash replica selection strategyYYYNNNNNNN
Index MergeYYYYYYYEEE
Placement Rules in SQLYYYYYYEENN
Cascades PlannerEEEEEEEEEE
Runtime FilterYYYNNNNNNN

Data definition language (DDL)

Data definition language (DDL)8.28.17.57.16.56.15.45.35.25.1
Basic CREATE, DROP, ALTER, RENAME, TRUNCATEYYYYYYYYYY
Generated columnsYYYYEEEEEE
ViewsYYYYYYYYYY
SequencesYYYYYYYYYY
Auto incrementYYYYY4YYYYY
Auto randomYYYYYYYYYY
TTL (Time to Live)YYYYENNNNN
DDL algorithm assertionsYYYYYYYYYY
Multi-schema change: add columnsYYYYYEEEEE
Change column typeYYYYYYYYYY
Temporary tablesYYYYYYYYNN
Concurrent DDL statementsYYYYYNNNNN
Acceleration of ADD INDEX and CREATE INDEXYYYYYNNNNN
Metadata lockYYYYYNNNNN
FLASHBACK CLUSTERYYYYYNNNNN
Pause/Resume DDLYYYNNNNNNN
TiDB Accelerated Table CreationEENNNNNNNN
Configure BDR role to replicate DDL statements in BDR modeEENNNNNNNN

Transactions

Transactions8.28.17.57.16.56.15.45.35.25.1
Async commitYYYYYYYYYY
1PCYYYYYYYYYY
Large transactions (10GB)YYYYYYYYYY
Pessimistic transactionsYYYYYYYYYY
Optimistic transactionsYYYYYYYYYY
Repeatable-read isolation (snapshot isolation)YYYYYYYYYY
Read-committed isolationYYYYYYYYYY
Automatically terminating long-running idle transactionsYYNNNNNNNN
Bulk DML execution mode (tidb_dml_type = "bulk")EENNNNNNNN

Partitioning

Partitioning8.28.17.57.16.56.15.45.35.25.1
Range partitioningYYYYYYYYYY
Hash partitioningYYYYYYYYYY
Key partitioningYYYYNNNNNN
List partitioningYYYYYYEEEE
List COLUMNS partitioningYYYYYYEEEE
Default partition for List and List COLUMNS partitioned tablesYYYNNNNNNN
EXCHANGE PARTITIONYYYYYEEEEE
REORGANIZE PARTITIONYYYYNNNNNN
COALESCE PARTITIONYYYYNNNNNN
Dynamic pruningYYYYYYEEEE
Range COLUMNS partitioningYYYYYNNNNN
Range INTERVAL partitioningYYYYENNNNN
Convert a partitioned table to a non-partitioned tableYYYNNNNNNN
Partition an existing tableYYYNNNNNNN

Statistics

Statistics8.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 defaultYY
HistogramsYYYYYYYYYY
Extended statisticsEEEEEEEEEE
Statistics feedbackNNNNNDeprecatedDeprecatedEEE
Automatically update statisticsYYYYYYYYYY
Dynamic pruningYYYYYYEEEE
Collect statistics for PREDICATE COLUMNSEEEEEEENNN
Control the memory quota for collecting statisticsEEEEENNNNN
Randomly sample about 10000 rows of data to quickly build statisticsDeprecatedDeprecatedDeprecatedEEEEEEE
Lock statisticsYYYEENNNNN
Lightweight statistics initializationYYYENNNNNN
Show the progress of collecting statisticsYYYNNNNNNN

Security

Security8.28.17.57.16.56.15.45.35.25.1
Transparent layer security (TLS)YYYYYYYYYY
Encryption at rest (TDE)YYYYYYYYYY
Role-based authentication (RBAC)YYYYYYYYYY
Certificate-based authenticationYYYYYYYYYY
caching_sha2_password authenticationYYYYYYYYYN
tidb_sm3_password authenticationYYYYYNNNNN
tidb_auth_token authenticationYYYYYNNNNN
authentication_ldap_sasl authenticationYYYNNNNNNN
authentication_ldap_simple authenticationYYYYNNNNNN
Password managementYYYYYNNNNN
MySQL compatible GRANT systemYYYYYYYYYY
Dynamic PrivilegesYYYYYYYYYY
Security Enhanced ModeYYYYYYYYYY
Redacted Log FilesYYYYYYYYYY

Data import and export

Data import and export8.28.17.57.16.56.15.45.35.25.1
Fast import using TiDB LightningYYYYYYYYYY
Fast import using the IMPORT INTO statementYYYNNNNNNN
mydumper logical dumperDeprecatedDeprecatedDeprecatedDeprecatedDeprecatedDeprecatedDeprecatedDeprecatedDeprecatedDeprecated
Dumpling logical dumperYYYYYYYYYY
Transactional LOAD DATA 5YYYYYYYYYY
Database migration toolkit (DM)YYYYYYYYYY
TiDB Binlog 6YYYYYYYYYY
Change data capture (CDC)YYYYYYYYYY
Stream data to Amazon S3, GCS, Azure Blob Storage, and NFS through TiCDCYYYYENNNNN
TiCDC supports bidirectional replication between two TiDB clustersYYYYYNNNNN
TiCDC OpenAPI v2YYYYNNNNNN
DM supports migrating MySQL 8.0YYEEEENNNN

Management, observability, and tools

Management, observability, and tools8.28.17.57.16.56.15.45.35.25.1
TiDB Dashboard UIYYYYYYYYYY
TiDB Dashboard Continuous ProfilingYYYYYYEENN
TiDB Dashboard Top SQLYYYYYYENNN
TiDB Dashboard SQL DiagnosticsYYYYYEEEEE
TiDB Dashboard Cluster DiagnosticsYYYYYEEEEE
TiKV-FastTune dashboardEEEEEEEEEE
Information schemaYYYYYYYYYY
Metrics schemaYYYYYYYYYY
Statements summary tablesYYYYYYYYYY
Statements summary tables - summary persistenceEEEENNNNNN
Slow query logYYYYYYYYYY
TiUP deploymentYYYYYYYYYY
Kubernetes operatorYYYYYYYYYY
Built-in physical backupYYYYYYYYYY
Global KillYYYYYYEEEE
Lock ViewYYYYYYYYYE
SHOW CONFIGYYYYYYYYYY
SET CONFIGYYYYYYEEEE
DM WebUIEEEEEENNNN
Foreground Quota LimiterYYYYYENNNN
Background Quota LimiterEEEEENNNNN
EBS volume snapshot backup and restoreYYYYYNNNNN
PITRYYYYYNNNNN
Global memory controlYYYYYNNNNN
Cross-cluster RawKV replicationEEEEENNNNN
Green GCEEEEEEEEEE
Resource controlYYYYNNNNNN
Runaway Queries managementYYENNNNNNN
Background tasks managementEEENNNNNNN
TiFlash Disaggregated Storage and Compute Architecture and S3 SupportYYYENNNNNN
Selecting TiDB nodes for the Distributed eXecution Framework (DXF) tasksYYYNNNNNNN
PD Follower Proxy (controlled by tidb_enable_tso_follower_proxy)YYYYYYYYNN
Active PD Follower (controlled by pd_enable_follower_handle_region)EENNNNNNNN
PD microservicesEENNNNNNNN
TiDB Distributed eXecution Framework (DXF)YYYENNNNNN
Global SortYYENNNNNNN
TiProxyYYNNNNNNNN

  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 TiDB v7.5.0, technical support for the data replication feature of TiDB Binlog is no longer provided. It is strongly recommended to use TiCDC as an alternative solution for data replication. Although TiDB Binlog v7.5.0 still supports the Point-in-Time Recovery (PITR) scenario, this component will be completely deprecated in future versions. It is recommended to use PITR as an alternative solution for data recovery.
  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?