TiDB Experimental Features

This document introduces experimental features in various versions of TiDB. We recommend that you do not use these features in production environments.

Performance

  • Support for collecting PREDICATE COLUMNS statistics (introduced in v5.4)
  • Support for loading statistics synchronously (introduced in v5.4)
  • Memory quota control for collecting statistics (introduced in v6.1.0)
  • Randomly samples about 10,000 rows of data to quickly create statistics (introduced in v3.0)

Stability

  • Improves the stability of indexes selected by the optimizer. It extends statistics capabilities by collecting order-dependent information for multiple columns (introduced in v5.0).
  • If TiKV is deployed with limited resources and too many read and write requests are processed in the TiKV foreground, CPU resources used to process these requests in the background are occupied, which affects TiKV performance stability. To avoid this situation, use a quota limiter to limit CPU resources used in the foreground. (introduced in v6.0)

Scheduling

Elastic scheduling. This enables a TiDB cluster to dynamically scale out and scale in on Kubernetes based on real-time workloads. This effectively reduces pressure during application peaks and saves overhead. For details, see using TidbCluster autoscaling. (introduced in v4.0)

SQL

  • Expression indexes. Expression indexes are also called function-based indexes. When creating an index, the indexed field does not have to be a specific column; it can be an expression calculated from one or more columns. This feature helps quickly access calculation-based tables. For details, see expression indexes. (introduced in v4.0)
  • Generated columns (introduced in v2.1)
  • User-defined variables (introduced in v2.1)
  • JSON data types and JSON functions (introduced in v2.1)
  • Cascades Planner: a top-down query optimizer based on the Cascades framework (introduced in v3.0)
  • ALTER TABLE ... COMPACT (introduced in v6.1.0)
  • Changing multiple columns or indexes by using ALTER TABLE (introduced in v5.0.0)

Storage

  • Titan disabled (introduced in v4.0)
  • Titan level merge (introduced in v4.0)
  • Partitions are split into buckets. Buckets are used as units of concurrent queries and improve scan concurrency. (introduced in v6.1.0)
  • TiKV introduces API V2. (introduced in v6.1.0)

Backup and Restore

  • RawKV backup and restore (introduced in v3.1)

Data Migration

  • Use WebUI to manage migration tasks in DM. (introduced in v6.0)

Garbage Collection

  • Green GC (introduced in v5.0)

Diagnostics

  • SQL diagnostics (introduced in v4.0)
  • Cluster diagnostics (introduced in v4.0)