📣

TiDB Cloud Serverless is now
TiDB Cloud Starter
! Same experience, new name.
Try it out →

TiDB 8.5.3 Release Notes

Release date: August 14, 2025

TiDB version: 8.5.3

Quick access: Quick start | Production deployment

Compatibility changes

Improvements

  • TiDB

    • Adjust estimation results from 0 to 1 for equality conditions that do not hit TopN when statistics are entirely composed of TopN and the modified row count in the corresponding table statistics is non-zero #47400 @terry1purcell
    • Improve the performance of adding unique indexes using global sort, and refine the error message when adding duplicate unique indexes #61689 @CbcWestwolf
    • Disable TiKV switching to import mode when IMPORT INTO enables global sort #60361 @D3Hunter
    • Add a monitoring metric to observe the write speed to TiKV during index addition #60925 @CbcWestwolf
    • Optimize the scheduling logic of merge sort sub-tasks to improve sorting performance #60375 @tangenta
    • Accelerate table creation when creating a large number of tables with foreign keys, and optimize memory usage efficiency #61126 @GMHDBJD
    • Improve the read performance of the information_schema.tables table #62020 @tangenta
    • Add flow control interfaces for Region splitting and data ingestion during data import #61553 @tangenta
    • Optimize the plan construction process for IndexScan by reducing fmt.Sprintf() calls #56649 @crazycs520
    • Add monitoring metrics for the merge sort stage when using Global Sort with indexes #61025 @fzzf678
    • Remove redundant log entries when the IndexLookup operator encounters a context canceled error #61072 @yibin87
    • Improve the performance when tidb_replica_read is set to closest-adaptive #61745 @you06
    • Reduce operational costs by decreasing the amount of monitoring metrics data in large-scale clusters #59990 @zimulala
  • TiKV

    • Support ingesting SST files without blocking foreground writes, reducing the impact of latency #18081 @hhwyt
    • Reduce performance jitter caused by the flow controller #18625 @hhwyt
    • Optimize tail latency during ADD INDEX operations in TiDB #18081 @overvenus
    • Optimize the handling of CompactedEvent in Raftstore by moving it to the split-check worker, reducing blocking on the main Raftstore thread #18532 @LykxSassinator
    • Log only SST ingest is experiencing slowdowns when SST ingest is too slow, and skip calling get_sst_key_ranges to avoid performance jitter #18549 @LykxSassinator
    • Optimize the detection mechanism for I/O jitter on KvDB disks when KvDB and RaftDB use separate mount paths #18463 @LykxSassinator
    • Optimize the performance of fetch_entries_to in Raft Engine to reduce contention and improve performance under mixed workloads #18605 @LykxSassinator
    • Optimize the cleanup mechanism of residual data to mitigate the impact on request latency #18107 @LykxSassinator
  • PD

    • Add GO runtime-related monitoring metrics in Prometheus #8931 @bufferflies
    • Extend the recovery time after triggering slow node leader eviction from 600 seconds to 900 seconds (15 minutes) #9329 @rleungx
  • TiFlash

    • Increase the maximum retry count when acquiring storage snapshots to improve query stability for large tables #10300 @JaySon-Huang
    • Enhance the observability for TiFlash OOM risks in wide table scenarios #10272 @JaySon-Huang
  • Tools

    • Backup & Restore (BR)

      • Improve the index restore speed during PITR by repairing indexes concurrently #59158 @Leavrth
      • The Download API of TiKV supports filtering out data within a certain time range when downloading backup files, which avoids importing outdated or future data versions during restore #18399 @3pointer
      • Support filtering log backup metadata files by timestamp to reduce the time spent on reading metadata during PITR #61318 @3pointer

Bug fixes

  • TiDB

    • Fix the issue of incorrect key range in ALTER RANGE meta SET PLACEMENT POLICY #60888 @nolouch
    • Fix the issue that decreasing the number of workers during index creation might cause the task to hang #59267 @D3Hunter
    • Fix the issue that the ADMIN SHOW DDL JOBS statement does not display the row count correctly #59897 @tangenta
    • Fix the issue that data race might occur when dynamically adjusting the number of workers during index creation #59016 @D3Hunter
    • Fix the issue that the data in the Stats Healthy Distribution panel of Grafana might be incorrect #57176 @hawkingrei
    • Fix the issue that an error might occur when using IMPORT INTO ... FROM SELECT to import data into TiFlash #58443 @D3Hunter
    • Fix the issue that enabling tidb_enable_dist_task causes TiDB upgrade to fail #54061 @tangenta
    • Fix the issue that improper exception handling for statistics causes in-memory statistics to be mistakenly deleted when background tasks time out #57901 @hawkingrei
    • Fix the issue that the row count is not updated correctly when adding indexes in the TiDB Distributed eXecution Framework (DXF) #58573 @D3Hunter
    • Fix the issue that TiFlash query results are inconsistent after executing a lossy DDL statement #61455 @Lloyd-Pottiger
    • Fix the issue that TiDB fails to retry when encountering EOF errors with GCS #59754 @D3Hunter
    • Fix the issue of invalid KV ranges when using Global Sort #59841 @GMHDBJD
    • Fix the issue that an empty index name is generated when executing the CREATE INDEX IF NOT EXISTS statement #61265 @CbcWestwolf
    • Fix the issue that after disabling metadata locking (MDL), DDL operations get stuck after failing to update the schema version #61210 @wjhuang2016
    • Fix the issue that non-public indexes are shown in the statistics system table #60430 @tangenta
    • Fix the issue that incorrect memory tracking in the HashAgg operator causes a large number of error logs #58822 @xzhangxian1008
    • Fix the issue that a nil buffer in basePartialResult4GroupConcat causes a panic during disk spilling in the HashAgg operator #61749 @xzhangxian1008
    • Fix the issue that incorrect return values in the encoding logic of aggregate expressions cause a panic during query execution #61735 @YangKeao
    • Fix the issue that the HashJoin operator causes Goroutine leaks due to memory overuse #60926 @xzhangxian1008
    • Fix the issue that shared KV requests in IndexMerge and IndexLookUp operators cause data races when pushing down queries #60175 @you06
    • Fix the issue that SQL statements containing _charset(xxx), _charset(xxx2), ... generate different digests #58447 @xhebox
    • Fix the issue that TiDB might panic when handling invalid UTF-8 characters #47521 @Defined2014
    • Fix the issue that inserting an invalid daylight saving time (DST) timestamp results in 0000-00-00 #61334 @mjonss
    • Fix the issue that using INSERT IGNORE to insert an invalid daylight saving time timestamp in strict SQL mode results in a timestamp inconsistent with MySQL #61439 @mjonss
    • Fix the issue that frequent Region merges prevent TTL jobs from starting #61512 @YangKeao
    • Fix the issue that the column length returned by TiDB in the network protocol might be 0. If it is 0, TiDB returns the default length of each field type #60503 @xhebox
    • Fix the issue that the returned type of blob in the network protocol is inconsistent with MySQL #60195 @dveeden
    • Fix the issue that the length returned by CAST() is incompatible with MySQL #61350 @YangKeao
    • Fix the issue that the comparison behavior of latin1_bin differs from that of utf8mb4_bin and utf8_bin #60701 @hawkingrei
    • Fix the issue that pessimistic locks might remain when a query is terminated #61454 @zyguan
    • Fix the issue that an error occurs when TiDB executes large queries due to loading too many Regions from PD in a single request #1704 @you06
  • TiKV

    • Fix the issue that TiKV fails to terminate ongoing manual compaction tasks during graceful shutdown #18396 @LykxSassinator
    • Fix the issue that the default Region size is unexpectedly changed after a cluster upgrade #18503 @LykxSassinator
    • Fix the issue that TiKV might use a compression algorithm that the client cannot decode #18079 @ekexium
    • Fix the issue that blob indexes might cause apply snapshot failures after Titan is disabled #18434 @v01dstar
    • Fix misleading descriptions in StoreMsg log entries in slow logs #18561 @LykxSassinator
    • Fix the issue that TiKV allows excessive SST ingest requests under high concurrency #18452 @hbisheng
    • Fix the issue that TiKV might panic due to duplicate results during lock scanning #16818 @cfzjywxk
  • PD

    • Fix the issue that recovery-duration does not take effect in the slow node detection mechanism #9384 @rleungx
    • Fix the issue that the Evict Leader scheduler might be incorrectly paused after a cluster upgrade #9416 @rleungx
    • Fix the issue that improperly closing TiDB Dashboard TCP connections could lead to PD goroutine leaks #9402 @baurine
    • Fix the issue that newly added TiKV nodes might fail to be scheduled #9145 @bufferflies
  • TiFlash

    • Fix the issue that creating an expression index in the form of ((NULL)) causes TiFlash to panic #9891 @JaySon-Huang
    • Fix the issue that misaligned mutex in the Join operator causes TiFlash to crash in certain environments #10163 @windtalker
    • Fix the issue that missing resource control low token signals lead to query throttling #10137 @guo-shaoge
  • Tools

    • Backup & Restore (BR)

      • Fix the issue that available space on storage nodes is unnecessarily rechecked during breakpoint recovery #54316 @Leavrth
      • Fix the issue that data imports from external storage do not automatically retry when the HTTP/2 GOAWAY error occurs #60143 @joechenrh
      • Fix the keepalive watchdog timedout error that occurs during restore due to import mode switching #18541 @Leavrth
      • Fix the issue that log backup uploads to Azure Blob Storage are slow when transferring large volumes of data #18410 @YuJuncen
      • Fix the issue that BR does not check whether the corresponding table exists in the cluster when filtering tables with -f #61592 @RidRisR
      • Fix the issue that PITR fails to restore indexes larger than 3072 bytes #58430 @YuJuncen
      • Fix the issue that RangeTree results consume memory inefficiently during full backup #58587 @3pointer
    • TiCDC

      • Fix the issue that evaluating event filter expressions on tables containing virtual columns might cause a panic #12206 @lidezhu
      • Fix the issue that the resolved ts lag keeps increasing after scaling in or out TiKV nodes on the same IP address because of outdated store IDs #12162 @3AceShowHand
      • Fix the issue of case-sensitive matching for column and index names in the dispatcher configuration #12103 @wk989898
      • Fix the issue that configuring column-selector with the Debezium protocol might cause a panic #12208 @wk989898
    • TiDB Lightning

      • Fix the issue that TiDB Lightning returns the context deadline exceeded error when the RPC request to TiKV times out #60143 @joechenrh

Was this page helpful?