You are viewing the documentation of an older version of the TiDB database (TiDB v5.4).

It is recommended that you use the latest LTS version of the TiDB database.

TiDB 4.0 Beta Release Notes

Release date: January 17, 2020

TiDB version: 4.0.0-beta

TiDB Ansible version: 4.0.0-beta


  • Print the log or cancel the SQL execution when the memory used during the execution of INSERT/REPLACE/DELETE/UPDATE exceeds the limit specified by the MemQuotaQuery configuration item. The actual behavior depends on the OOMAction configuration. #14179 #14289 #14299
  • Increase the accuracy of calculating the cost of Index Join by considering the row counts of both driving tables and driven tables #12085
  • Add 15 SQL hints to control the behavior of the optimizer and make the optimizer more stable
  • Improve the performance when the columns involved in a query can be fully covered by indexes #12022
  • Improve the performance of table query by supporting the Index Merge feature #10121 #10512 #11245 #12225 #12248 #12305 #12843
  • Improve the performance of Range calculation and reduce the CPU overhead by caching index results and eliminating duplicate results #12856
  • Decouple the level of slow logs from the level of ordinary logs #12359
  • Add the oom-use-tmp-storage parameter (true by default) to control whether to use temporary files to cache intermediate results when the memory usage for the execution of a single SQL statement exceeds mem-quota-query and the SQL contains Hash Join #11832 #11937 #12116 #12067
  • Support using create index/alter table to create expression index and using drop index to drop expression index #14117
  • Increase the default value of the query-log-max-len parameter to 4096 to reduce the number of truncated SQL outputs. This parameter can be adjusted dynamically. #12491
  • Support adding the AutoRandom keyword in the column attribute to control whether the system automatically assigns a random integer to the primary key, which avoids the hotspot problem caused by the AUTO_INCREMENT primary key #13127
  • Support Table Locks #11038
  • Support using the LIKE or WHERE clause in ADMIN SHOW DDL JOBS for conditional filtering #12484
  • Add the TIDB_ROW_ID_SHARDING_INFO column in the information_schema.tables table to output the RowID scattering information (for example, the value of the SHARD_ROW_ID_BITS column in table A is "SHARD_BITS={bit_number}") #13418
  • Optimize the error code of SQL error messages to avoid the situation that the ERROR 1105 (HY000) code is used for multiple error messages (the Unknown Error type)
  • Convert a narrow data range of the discrete type into point set and use CM-Sketch to improve the estimation accuracy when estimating the number of rows #11524
  • Extract the TopN information from CM-Sketch for normal Analyze and separately maintain the frequently occurring values #11409
  • Support dynamically adjusting the depth and width of CM-Sketch and the number of TopN information #11278
  • Support automatically capturing and evolving SQL Binding #13199 #12434
  • Optimize the encoding format of communication with TiKV by using Chunk to improve communication performance #12023 #12536 #12613 #12621 #12899 #13060 #13349
  • Support the new row store format to improve the performance of the wide table #12634
  • Optimize the Recover Binlog interface to ensure waiting all transactions to be committed before returning to the client #13740
  • Support querying the binlog statuses enabled by TiDB servers in the cluster through the HTTP info/all interface #13025
  • Support the MySQL-compatible Read Committed transaction isolation level when using the pessimistic transaction mode #14087
  • Support large-sized transactions. The transaction size is limited by the size of the physical memory.
  • Improve the stability of Kill #10841
  • Support hexadecimal and binary expressions as separators in LOAD DATA #11029
  • Improve the performance of IndexLookupJoin and reduce memory consumption during execution by splitting IndexLookupJoin into IndexHashJoin and IndexMergeJoin #8861 #12139 #12349 #13238 #13451 #13714
  • Fix several issues relating to RBAC #13896 #13820 #13940 #14090 #13940 #13014
  • Fix the issue that VIEW cannot be created because the SELECT statement contains union #12595
  • Fix several issues relating to the CAST function
  • Output the detailed backoff information of TiKV RPC in the slow log to facilitate troubleshooting #13770
  • Optimize and unify the format of the memory statistics in the expensive log #12809
  • Optimize the explicit format of EXPLAIN and support outputting information about the operator’s usage of memory and disk #13914 #13692 #13686 #11415 #13927 #13764 #13720
  • Optimize the check for duplicate values in LOAD DATA based on the transaction size and support setting the transaction size by configuring the tidb_dml_batch_size parameter #11132
  • Optimize the performance of LOAD DATA by separating the data preparing routine and the commit routine and assigning the workload to different Workers #11533 #11284



  • Support optimizing hotspot scheduling according to the load information of storage nodes
  • Add the Placement Rules feature that supports controlling the number of replicas of any data range, the storage location, the storage host type and roles by combining different scheduling rules
  • Support using plugins (experimental) #1799
  • Add the feature that the schedulers support the customized configuration and key ranges (experimental) #1735 #1783 #1791
  • Support automatically adjusting the scheduling speed according the cluster load information (experimental, disabled by default) #1875 #1887 #1902


  • TiDB Lightning
    • Add the parameter in the command-line tool to set the password of the downstream database #253

TiDB Ansible

  • Add checksum check in the package in case that the downloaded package is incomplete #1002
  • Support checking the systemd version which must be systemd-219-52 or later #1020 #1074
  • Fix the issue that the log directory is incorrectly created when TiDB Lightning is started #1103
  • Fix the issue that the customized port of TiDB Lightning is invalid #1107
  • Support deploying and maintaining TiFlash #1119
Was this page helpful?