tidb v4.0.0-beta Release Notes

Release Date: 2020-01-17 // over 4 years ago
  • πŸ‘Œ Improvements

    • Increase the accuracy of calculating the cost of Index Join by considering the row counts of both driving tables and driven tables #12085
    • πŸ‘Œ 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
    • 0️⃣ 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
    • Convert a narrow data range of the discrete type into point set and use CMSketch to improve the estimation accuracy when estimating the number of rows #11524
    • Extract the TopN information from CMSketch for normal Analyze and separately maintain the frequently occurring values #11409
    • πŸ‘Œ Support dynamically adjusting the depth and width of CMSketch and the number of TopN information #11278
    • πŸ‘Œ Support automatically capturing and evolving SQL Binding #13199
    • 🐎 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
    • πŸ‘Œ Improve the stability of Kill #10841
    • πŸ‘Œ Improve the performance of IndexLookupJoin and reduce memory consumption during execution by splitting IndexLookupJoin into IndexHashJoin and IndexMergeJoin #8861 #12139 #12349 #13238 #13451 #13714
    • 🌲 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
    • 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 Recover Binlog interface to ensure waiting all transactions to be committed before returning to the client #13740
    • 🐎 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

    πŸ†• New Features

    • πŸ‘Œ 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
    • βž• 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 querying the binlog statuses enabled by TiDB servers in the cluster through the HTTP info/all interface #13025
    • πŸ‘Œ 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 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.
    • πŸ‘Œ Support hexadecimal and binary expressions as separators in LOAD DATA #11029 #13914 #13692 #13686 #11415 #13927 #13764 #13720
    • βž• Add 15 SQL hints to control the behavior of the optimizer and make the optimizer more stable

    πŸ”„ Changed Behaviors

    • ⚑️ Optimize the error code of SQL error messages to eliminate the ERROR 1105 (HY000) code(the Unknown Error type)
    • ⚑️ 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

    πŸ›  Bugfix