Minor Version | Description |
20230701 | Note: Starting from MySQL 8.0.29, the query results of tables in the Information Schema will use utf8mb3 instead of utf8. Versions of Connector/Net earlier than 8.0.28 do not support utf8mb3, and will throw an error if utf8mb3 is used: Character Set 'utf8mb3' is not supported by .Net Framework. If the application uses Connector/Net, upgrade Connector/Net to version 8.0.28 or later before upgrading the TencentDB for MySQL version. For details, see: Bug fixes Supports initiating TXSQL physical backup using the community version. Replaced all keywords in the AWR feature with "TXSQL_AWR". Fixed an issue where the background thread competing with RENAME on the dict cache could cause a failure to open the underlying table. |
20230630 | Note: Starting from MySQL 8.0.29, the query results of tables in the Information Schema will use utf8mb3 instead of utf8. Versions of Connector/Net earlier than 8.0.28 do not support utf8mb3; encountering utf8mb3 will result in an error: Character Set 'utf8mb3' is not supported by .Net Framework. If the application uses Connector/Net, please upgrade Connector/Net to 8.0.28 or later before upgrading the TencentDB for MySQL version. For more details, see: New features Supported Nonblocking DDL feature. Supported xa commit to record the maximum gts instance TP/AP load statistics in relay log. Supported selecting Innodb temporary tables for parallel query of worker thread sharing. Supported using partition tables as parallel tables for parallel queries. Supported the flashback version query feature. Supports persistence for flashback query. Supported virtual indexes. Supported the range/list secondary partition feature. Supported the automatic relay log recovery feature. Supported the default algorithm for DDL, with options INPLACE/INSTANT. Supported Fast Query Cache. Supported the conversion of partition tables from MyISAM to InnoDB. Supported the correlated subquery cache feature. Performance Optimization Optimized the BINLOG LOCK_done lock conflict. Optimized thread pool performance. Optimized the issue where disabling eq_ref cache in outer join leads to performance regression. Enhanced parallel query: Subquery \\derived table executed in parallel independently: Optimized and executed plan for subquery \\derived table in parallel, independent of main query execution. Nested loop join inner table in parallel: When the NLJ outer table is small, the inner table can be selected as the parallel table for parallel execution with ROLL UP. Hash join (in memory) executed in parallel: Work threads build complete hash tables separately, with parallel scanning on the probe end. Parallel query supports global aggregation optimization. Parallel query supports pushdown parallelism under having condition. Optimized binlog submission for large transactions. Optimized performance fluctuation caused by binlog purge. Supported for hot updates, merge and optimization. Bug Fixes Fixed the issue of assertion failure when rolling back transactions of Parallel Copy DDL. Fixed the issue where EXPLAIN FORMAT=TREE does not print subqueries in the condition of HashJoin. Fixed the issue where redundant format causes instance running exception after instant add. Fixed the issue of global transaction id rollback after upgrading from an older version. Fixed the issue where index merge intersect causes incorrect query results. Fixed the issue where cross-machine statistical information collection may block the shutdown process. Fixed the issue where historical histogram versions might crash in a primary-secondary environment. Fixed the issue of check index holding a large number of page locks. Fixed the deadlock issue in cross-machine histograms under concurrent DDL operations. Fixed the issue where the lock was not released when the cross-machine histogram task included too many columns. Fixed several instant DDL issues. Fixed the issue where update returning caused the client to disconnect. Fixed the null pointer dereference vulnerability found by the vulnerability scan. Fixed the issue where changes in the storage layer table structure under parallel execution may cause instance running exception. Fixed the performance degradation issue caused by using WHERE column IN (list) in prepare statements. Fixed the issue where statistical information might be empty when importing mysqldump logical backups. Fixed the primary key conflict issue that occurs when using Parallel Copy DDL for table changes that include auto-increment columns. Fixed the issue where the build branch of the hash join in parallel queries cannot be parallelized when the hash join is present. Fixed the issue where the non-parallel branches of a parallel query join cannot be parallelized when there is a UNION. Fixed two memory leak issues in parallel queries. Fixed the partition exit issue for empty range in parallel queries. Fixed the error issue with Outline IN-list. Fixed the issue where partition_id overflow leads to truncate partition crash. Fixed the issue in parallel queries where related subqueries referencing worker table fields resulted in incorrect query results. Fixed the issue in parallel DDLs regarding obtaining an incorrect offset. Fixed the issue in parallel DDLs where adding a unique key to a column with duplicate data caused the instance to run abnormally. Fixed the issue of assertion in parallel hash join debug. Fixed the issue in parallel cost calculation where NDV was 0. Fixed the issue with JSON import accuracy. FORCE INDEX ORDER BY statement skips the index dive bug. Fixed the issue where the official subquery plan was displayed multiple times. Fixed the issue where the disk-based temporary table quantity does not increase. Fixed the deadlock issue caused by proxy change user. Fixed the issue where calling a stored procedure in a trigger due to permission verification optimization caused permission checks to be bypassed. |
20221221 | Note: Starting from MySQL 8.0.29, the query results of tables in the Information Schema will use utf8mb3 instead of utf8. Versions of Connector/Net earlier than 8.0.28 do not support utf8mb3; encountering utf8mb3 will result in an error: Character Set 'utf8mb3' is not supported by .Net Framework. If the application uses Connector/Net, please upgrade Connector/Net to 8.0.28 or later before upgrading the TencentDB for MySQL version. For more details, see: Bug Fixes Fixed the issue where after enabling log_slave_updates on a secondary node, the thread_id of the event written to the binlog on the secondary node changed. |
20221220 | Note: Starting from MySQL 8.0.29, the query results of tables in the Information Schema will use utf8mb3 instead of utf8. Versions of Connector/Net earlier than 8.0.28 do not support utf8mb3; encountering utf8mb3 will result in an error: Character Set 'utf8mb3' is not supported by .Net Framework. If the application uses Connector/Net, please upgrade Connector/Net to 8.0.28 or later before upgrading the TencentDB for MySQL version. For more details, see: Bug Fixes Fixed the instant DDL bug. |
20221215 | Note: Starting from MySQL 8.0.29, the query results of tables in the Information Schema will use utf8mb3 instead of utf8. Versions of Connector/Net earlier than 8.0.28 do not support utf8mb3; encountering utf8mb3 will result in an error: Character Set 'utf8mb3' is not supported by .Net Framework. If the application uses Connector/Net, please upgrade Connector/Net to 8.0.28 or later before upgrading the TencentDB for MySQL version. For more details, see: New Features Supported user connection status monitoring feature, which can be viewed through show detail processlist for connection monitoring. Supported the update wait N syntax. Supported nvl(), to_number(), to_char() function feature syntax. Supported cdb_kill_user_extra regular expression. Performance Optimization Optimized binlog rotate implementation method and improved binlog write speed. Optimized TencentDB for MySQL startup speed. Optimized binlog checksum calls, and reduced unnecessary CPU performance overhead. Optimized ha_innopart::external_lock lock hotspots, and reduced lock holding time. Optimized xa::Transaction_cache, and reduced lock conflicts. Reduced ha_innopart::clear_blob_heaps time consumption. Optimized purge threads lock hotspots, and reduced tasks_mutex and thread conflicts. Optimized Buffer Pool initialization, supporting parallel initialization, and accelerating initialization speed. Optimized read_only and select performance under high concurrency. Optimized permission validation for prepared statement and stored procedure. Optimized access to change buffer. Avoided unnecessary calls to fil_space_get, and reduced FAQs in extreme scenarios. Optimized lock conflict for GTID during transaction commit when binlog_order_commits is disabled. Applied Lock Free Hash to optimize trx_sys mutex conflict. Optimized the overhead of taking a snapshot in the transaction system. Optimized Writeset and improved performance. Replaced index drill-down with histogram. Supports Parallel DDL. Bug Fixes Fixed issues with abnormal statistical values such as innodb_row_lock_current_waits. Fixed the issue of excessively high memory usage with Group concat with group by. Fixed the issue of statistical information being severely underestimated in long records. Fixed the issue in parsing stored procedure syntax. Fixed the issue in FAST DDL optimization of flush list to release page concurrency. |
20220831 | New features Supported setting the MySQL version dynamically. Supported transparent column encryption. When creating a table, you can specify the encryption attribute for the `varchar` field, and the storage system will encrypt the column. This capability is expected to be commercialized in 2023. Fixed the exception of the third-party data subscription tool caused by subscription to the comparison SQL for internal data consistency during tool usage. Note: After the database instance is migrated, upgraded, or recovered after failure, the system will compare the data consistency to ensure the consistency of data. When comparison SQL is in `statement` mode, exceptions are easy to occur in response of some third-party subscription tools to the SQL in `statement` mode. When the instance is upgraded to its kernel, the third-party data subscription tool can't subscribe the comparison SQL for internal data consistency. Supported adding NO_WAIT | WAIT [n] for DDL operations. This enables such operations to be rolled back immediately if they cannot obtain the MDL lock and must wait or if they have waited the specified time for the MDL lock. Supported the fast query cache feature, which is suitable for scenarios with more reads than writes. If there are more writes than reads, the data is updated very frequently, or the result set of the query is very large, we recommend that you not enable this feature. Supported enhanced MTS deadlock detection. Supported parallel query. After this feature is enabled, large queries can be automatically identified. The parallel query capability leverages multiple compute cores to greatly shorten the response time of large queries. Performance optimizations Optimized the overheads of the transaction system to take snapshots. The Copy Free Snapshot method is adopted, the transaction delay is deleted from the global active transaction hash, and the snapshot taking method is optimized to determine the logical timestamp of the snapshot event. As tested by sysbench, the extreme performance is increased by 11% in the read-write scenario. Optimized permission check for prepared statements. A variable is used globally to indicate the permission version number, a prepared statement records the version number after being prepared, and the system checks whether the version number has changed during execution. If there is no permission change, the system will skip the permission check; otherwise, it will check the permission and record the version number again. Optimized the accuracy of time acquisition in the thread pool. Optimized record offset acquisition. A record offset is cached for each index. When the conditions are met, the cached offset will be directly used, saving the computing overheads of invoking the `rec_get_offsets()` function. Optimized parallel DDL. 1. When the index field is small, the sampled memory size is reduced to lower the sampling frequency. 2. The K-way merge algorithm is used for sorting, which effectively reduces the number of rounds of merging and sorting to lower the number of IOs. 3.When records are read, the fixed-length offset is cached in order to avoid generating offsets for each record each time. Optimized the undo log information recording logic to improve the INSERT performance. Improved the performance after semi-sync was enabled. Optimized the audit performance to reduce the system overheads. Bug fixes Fixed the issue where the displayed value of `Thread_memory` was abnormal sometimes. Fixed the issue where the timestamp was inaccurate during batch statement audit. Fixed issues related to column modification at the second level. Fixed the issue where the `CREATE TABLE t1 AS SELECT ST_POINTFROMGEOHASH("0123", 4326);` statement caused source-replica disconnection. Fixed the issue where the replica failed to retry during concurrent requests at the table level. Fixed the `Malformed packet` error reported when `show slave hosts` was executed. Fixed recycle bin issues. Fixed the issue where the jemalloc mechanism easily triggered OOM on ARM device models. Fixed the issue where `truncate pfs account table` caused the failure to collect statistics. Fixed the exception that occurred while restoring the child table first and then restoring the parent table when the recycle bin had a foreign key constraint. Fixed sql_mode log issues. Fixed the occasional issue where a procedure became abnormal when `CREATE DEFINER` was executed. Fixed Copy Free Snapshot issues. Fixed the performance fluctuation of the thread pool. Fixed the issue where the result of `hash join+union` might be empty. Fixed memory issues. |
20220401 | Bug fixes Fixed the issue where the stage variable error in Parallel DDL caused the stage null pointer to crash when creating FTS indexes. Fixed the possible crash when adding full-text indexes. |
20220331 | Bug fixes Fixed the crash caused by dereferencing wild pointers in the thread pool. |
20220330 | New features Enabled writeset parallel replication by default. Supported extended resource groups to control the I/O, memory utilization, and SQL timeout policy by user. Supported flashback query to query data at any time point within the UNDO time range. Supported `RETURNING` in a `DELETE`, `INSERT`, or `REPLACE` statement to retrieve the data rows modified by the statement. Supported the GTID replication feature extension in row mode. Supported transaction lock optimization. Enhanced the recycle bin to support TRUNCATE TABLE and automatic cleanup of tables in the recycle bin. Supported parallel DDL to speed up DDL operations for which to create indexes through three-phase parallel operations. Supported quick index column modification. Supported automatic statistics collection and cross-server statistics collection. Performance optimizations Optimized the GTID lock conflicts when transactions were committed if `binlog_order_commits` was disabled. Accelerated MySQL startup by changing the InnoDB startup phase from single-threaded creation of Rsegs to multi-threaded creation. Bug fixes Fixed the issue where the transaction did not end when the connection was closed after deadlock or lock wait. Fixed the issue where the `innodb_row_lock_current_waits` value was abnormal. Fixed the SQL type error in the audit plugin without USE DATABASE. Fixed the issue where tables smaller than `innodb_async_table_size` were also renamed during async drop of big tables. Fixed the issue with incorrect escape characters in the audit plugin. Fixed the issue of rollback after quick column modification. Fixed the issue where the transaction system (trx_sys) may crash if it contains XA transactions when it is closed. Fixed the crash when merging derived tables. Fixed the issue where `binlog_format` was modified after writeset was enabled. Fixed the error (error code: 1032) caused by hash scans with A->B->A->C update on the same row. Fixed the issue where the sort index might be invalid in prepared statement mode. Fixed the issue where the operator that consumed the materialized result might be merged into the returned value path of the materialized operator and result in incorrect comprehension and display of the execution plan. Fixed exceptions in extreme cases for async drop of big tables. Fixed the abnormal error message when setting a SQL filter. Fixed the syntax error reported during stored procedure parsing. Fixed the issue where historical histograms couldn't be applied. Fixed the role column display compatibility issue caused by `SHOW SLAVE HOSTS(show replicas)`. Fixed the crash of `Item_in_subselect::single_value_transformer` when the number of columns was incorrect. Fixed the crash caused by memory leaks during cascading update if a subtable contained virtual columns and foreign key columns. |
20211202 | New features Supported quick column modification. Supported histogram versioning. Supported SQL:2003 TABLESAMPLE (single table) sampling control syntax for obtaining random samples of physical tables. Added non-reserved keywords: TABLESAMPLE BERNOULLI. Added the `HISTOGRAM()` function to build a histogram for a given input field. Supported compressed histograms. Supported SQL throttling. Supported MySQL cluster role configuration (default role: CDB_ROLE_UNKNOWN). Added a new `Role` column to the `show replicas` command's display results to display roles. Supported proxy. Performance optimizations Optimized the hotspot update problem caused by `insert on duplicate key update`. Accelerated the application of hash scan by aggregating multiple identical binlog events. Greatly reduced the memory usage by the `PREPARE` statement in point queries in the thread pool mode when the plan cache was enabled. Bug fixes Fixed the error of unstable performance after hotspot update optimization was enabled. Fixed the issue where `select count(*)` parallel scans caused full-table scans in extreme cases. Fixed performance issues caused by execution plan changes due to reading zero statistics in various cases. Fixed the bug where queries were in the `query end` status for a long time. Fixed the bug where statistics were severely underestimated in long records. Fixed the bug where an error was reported when the Temptable engine was used and the number of aggregate functions in the selected column exceeded 255. Fixed the case sensitivity issue of column names in the `json_table` function. Fixed the bug that caused correctness issues in window functions because expressions returned early during `return true`. Fixed the correctness issue caused by the pushdown by `derived condition pushdown` when it contained user variables. Fixed the issue where SQL filters were prone to crash when no namespaces were added in a rule. Fixed the QPS jitters when the thread pool was enabled under high concurrency and high conflict. Fixed the issue where source-replica buffer pool sync leaked file handles in extreme cases (when host file systems were corrupted). Fixed the index mapping issue. Fixed the statistics cache sync issue. Fixed the crash when information was not cleared during execution of the `UPDATE` statement or stored procedures. |
20210830 | New features Supported limiting the number of preloaded rows. Supported optimizing plan cache point query. Supported extended ANALYZE syntax (UPDATE HISTOGRAM c USING DATA 'json') and direct writes to histograms. Performance optimizations Replaced index seek with histogram to reduce evaluation errors and I/O overheads (this capability is not enabled by default). Bug fixes Fixed the issue where there might be no statistics information during online DDL. Fixed the issue where generated columns on replica instances were not updated. Fixed the issue where the instance hung when binlog was compressed. Fixed the issue of missing GTID in the previous_gtids event of the newly generated binlog file. Fixed possible deadlocks when system variables were modified. Fixed the issue where the information of the SQL thread of the replica instance in SHOW PROCESSLIST was incorrectly displayed. Implemented the bug fix related to hash join provided in MySQL 8.0.23. Implemented the bug fix related to writeset provided in MySQL. Implemented the bug fix related to the query optimizer provided in MySQL 8.0.24. Fixed the concurrency bugs of optimizing flush list and releasing pages in FAST DDL. Optimized the memory usage during data dictionary update in instances with a large number of tables. Fixed the crash caused by new primary key creation after INSTANT ADD COLUMN. Fixed the OOM caused by memory growth in full-text index query. Fixed the issue where -1 was included in the TIME field in the result set returned by SHOW PROCESSLIST. Fixed the issue where tables might fail to be opened due to histogram compatibility. Fixed the floating point accumulation error when Singleton histograms were constructed. Fixed the replication interruption caused by using many Chinese characters in the table name of a row format log. |
20210330 | New features Supported source-replica buffer pool sync: After a high-availability (HA) source-replica switch occurs, it usually takes a long time to warm up the replica, that is, to load hotspot data into its buffer pool. To accelerate the replica's warmup, TXSQL now supports the buffer pool sync between the source and the replica. Supported sort-merge join. Supported FAST DDL operations. Supported querying the value of the `character_set_client_handshake` parameter. Performance optimizations Optimized the mechanism of scanning and flushing the dirty pages tracked in the flush list, so as to solve the performance fluctuation issue while creating indexes and thus improve the system stability. Bug fixes Fixed the deadlocks caused by the modification of the `offline_mode` and `cdb_working_mode` parameters. Fixed the persistent concurrency issue of the `max_trx_id` field in `trx_sys` table. |
20201230 | New features Supported dynamic setting of thread pooling mode or connection pooling mode by using the `thread_handling` parameter. Performance optimizations Optimized the `BINLOG LOCK_done` conflict to improve write performance. Optimized the `trx_sys mutex` conflict by using lock-free hash to improve performance. Optimized redo log flushing. Optimized the buffer pool initialization time. Optimized the clearing of adaptive hash indexes (AHI) during the `drop table` operations on big tables. Optimized audit performance. Bug fixes Fixed performance fluctuation when cleaning InnoDB temporary tables. Fixed the read-only performance decrease when the instance has many cores. Fixed the error (error code: 1032) caused by hash scans. Fixed concurrency security issues caused by hotspot update. |
20200630 | New features Supported async drop of big tables. You can clear files asynchronously and slowly to avoid business performance fluctuation caused by dropping big tables. To apply for this feature, submit a ticket. Supported automatic killing of idle tasks to reduce resource conflicts. To apply for this feature, submit a ticket. Supported transparent data encryption (TDE). Bug fixes Fixed the issue where switch failed due to inconsistent positions between `relay_log_pos` and `master_log_pos`. Fixed the data file error caused by asynchronously storing data in the disk. Fixed the hard error when `fsync` returned `EIO` and retries were made repeatedly. Fixed the crash caused by phrase search under multi-byte character sets in full-text index. |
Minor Version | Description |
20240331 | New features Added update returning feature. Added a DDL progress display. During DDL operations, the show detail processlist command can be run to view it.Added the default table encryption feature. Performance optimizations Optimized the SQL_TYPE audit accuracy. Optimized index drill-down pruning. Bug fixes Fixed an issue where insert returning statements caused slave crashes. Fixed an issue where the slave replay thread got stuck due to MASTER_DELAY. Fixed an issue where setting custom variables using a function caused session track errors. Fixed an issue where hash scans consumed a large amount of memory. Fixed an inconsistency when dropping/truncating a non-existent table with the recycle bin enabled versus disabled. Fixed an issue where pulling binlog resulted in garbled characters when binlog_checksum was disabled. Fixed the Parallel Copy DDL bug. |
20230601 | New Features Supports persistence for flashback query. Supported drop table force, enabling drop innodb metadata. Supported Parallel Copy DDL. Supported limit in subquery. Supported the conversion of partition tables from MyISAM to InnoDB. Bug Fixes Fixed the issue of index anomaly in primary-secondary BP synchronization feature. Fixed the issue where killing connections during large transactions caused anomalies. Fixed the issue of obtaining user-defined variable string errors in session track. Fixed the issue of failure to create index when parallel DDL is enabled and innodb_disable_sort_file_cache is set. Fixed some errors with instant modify column. |
20230115 | New Features Supported Nonblocking DDL feature. Supported validate password plugin. Supported for storing historical deadlock information. Performance Optimization Asynchronous deletion of large tables: Temporary tables also use the innodb_async_table_size filter table, and only tables exceeding innodb_async_table_size are deleted asynchronously, improving the processing efficiency. Bug Fixes Fixed the issue where creating a user with grant identified by failed, causing primary/standby interruption. Fixed the issue where GROUP_CONCAT did not correctly set USED_TABLES when the DERIVED_MERGE switch was enabled. Fixed the issue where the gtid_subset function failed to correctly handle null_value. Fixed the issue where dummy index cache failed to initialize system columns. Fixed the issue of instant add column in partition table exceeding the maximum number of columns. Fixed the issue where canal pulling binlog may cause OOM. Fixed the error in proxy when reusing connections with different users. Fixed the proxy's incorrect responses for row count, found rows, and db settings. Fixed the issue where the error messages during binlog sending and receiving were incomplete. Fixed anomalies in paging and pushdown calculations. Fixed potential invalidity of m_page after creating a subtree with Parallel DDL. Fixed the crash issue with instant modify under certain character sets. |
20220716 | New features Supported auto-increment column persistence for InnoDB. Supported precise memory statistics. Supported query-level memory monitoring. Supported recycle bin. Supported parallel DDL statements. Supported flashback query. Supported async rollback for internal XA transactions. Performance optimizations Optimized async drop of big tables.The original definition of big table is 50 GB, which can now be controlled by the `innodb_async_table_size` to make it more flexible. Bug fixes Fixed the issue where `ERROR 1878 (HY000): Temporary file write failure` was reported when `alter table` was executed to create indexes. Fixed the issue where buf/buf/pool couldn't be viewed in PFS memory monitoring data. Fixed the issue where the returning statement might cause exceptions in some scenarios due to permission checks. Fixed the issue where an error was reported because the parser did not correctly handle semicolons in statements. Fixed the issue where single quotation marks in audit statements were not escaped. Fixed the issue of sudden memory usage increase on the ARM platform. Fixed the issue of source-replica inconsistency caused by modifying `binlog_format` after writeset was enabled. Fixed the issue of high CPU usage caused by exiting a large number of threads at the same time. Fixed bugs related to `drop table partition force`. Fixed the issue where binlog dump got stuck and caused the instance restart to become slow. Fixed the issue where the source-replica sync failed because `create table like temporary table` did not inherit the character set in the binlog. Fixed the issue where `show detail processlist` displayed illegal characters. Fixed the issue where the `thread_group` lock was not released when the thread pool was closed in some cases. Fixed the issue where updating the parent table at the parallel table level caused the instance to run abnormally. Fixed the issue where virtual columns were calculated incorrectly on the replica. Fixed the issue where `gtid_subset` did not set `null_value` to `false` after executing a row. |
20211230 | New features Supported source-replica buffer pool sync to speed up the performance recovery after HA switch (around 90 seconds faster than that in native mode). Added the backup lock feature to provide lightweight metadata locks to improve the service availability during backup. Performance optimizations Made functions related to `utf8/utf8mb4 my_charpos` inline to optimize the performance of UTF_8 functions in read_write scenarios. Upgraded jemalloc to v5.2.1. Optimized file number acquisition during binlog rotation. Optimized semi-sync replica I/O. Optimized hash scan aggregation. Accelerated the startup of crash recovery for large transactions. |
20211102 | New features Fixed the exception of the third-party data subscription tool caused by subscription to the comparison SQL for internal data consistency during tool usage. Note: After the database instance is migrated, upgraded, or recovered after failure, the system will compare the data to ensure data consistency. When comparison SQL is in `statement` mode, exceptions are prone to occur in response of some third-party subscription tools to the SQL in `statement` mode. When the instance is upgraded to its kernel, the third-party data subscription tool can't subscribe the comparison SQL for internal data consistency. |
20211031 | New features Supported writeset replication. Performance optimizations Optimized the checkpoint mechanism to increase the backup success rate. Optimized the hash scan index selection. Optimized the hotspot update performance to support `insert on duplicate key update`. Bug fixes Fixed the error of unstable performance after hotspot update was enabled. Fixed the crash caused by rolling back the UPDATE operation after an instant DDL. Fixed the issue where the `CREATE TABLE AS SELECT` statement didn't inherit the compression attribute after column compression was enabled. Fixed the instance crash caused by the `show variables like 'tencent_root%'` statement after the `skip-grant-table` option was enabled. Fixed the crash of the Query Rewriter plugin in read-only mode. Fixed the error (error code: 1032) caused by hash scans in partitioned tables. Fixed the issue where the first large transaction's SBM was 0 in MTS mode. Fixed the crash of `stop slave` caused by `slave_preserve_commit_order=ON, slave_transaction_retries=0`. Fixed several XA transaction bugs. Fixed the issue where SQL splicing went wrong during `show create` after a JSON field with a default value was created. Fixed the issue where disconnected transactions could not be rolled back after transactions were blocked. Fixed the issue where there might be no statistics information for long records in InnoDB persistent mode. Ported 8.0 to fix the issue where `ANALYZE TABLE` might cause query retention. Fixed the issue where the InnoDB statistics couldn't be synced to the server layer in time after change. Fixed the issue where statistical sampling might block writes for too long and cause a crash (bug# 31889883). Fixed the possibility of reading zero rows during the InnoDB statistics update process (bug# 105224). Fixed the possible O(N^2) behavior in MVCC (bug# 28825617). Fixed the crash caused by closing a temp table and triggering binlog rotation when a connection was released. |
20210630 | New features Added the new command SHOW SLAVE DETAIL [FOR CHANNEL channel] for displaying the binlog timestamp that the current replica has replayed. Supported transaction_read_only/transaction_isolation parameters. Performance optimizations Accelerated the application of hash scan on replicas by aggregating multiple identical binlog events. Bug fixes Fixed the issue where duplicate primary keys existed, columns couldn't be found, and columns were too long in temp tables caused by the `UPDATE` statement. Fixed the issue where there might be no statistics information during the DDL process. Fixed the inaccurate undo log size in connection status statistics. Fixed the instance crash caused by querying the metadata_locks table. Modified `of` as a non-reserved keyword. Fixed the issue where the dynamically modified version number was not invalidly displayed in new connections. Fixed the issue where the wild pointer was accessed during page_cache cleanning. Fixed the issue where the execution of ALTER TABLE might report the "Incorrect key file for table" error. Fixed the excessive memory usage by partitioned tables. Fixed the issue where -1 was included in the TIME field in the result set returned by SHOW PROCESSLIST. Fixed the lock wait of XA transaction replication on replica nodes. Fixed the incorrect lock of partitioned tables in equal range query. |
20210331 | New features Supported `RETURNING` clause in a `DELETE`, `INSERT`, or `REPLACE` statement to return information about the rows that were deleted or modified.by the statement. For `DELETE`, undo data is returned, while for `INSERT` or `UPDATE`, redo data is returned. Supported column compression: Row compression and data page compression are already supported, but if small fields in a table are read and written frequently while big fields are not, both of the compression methods waste a lot of computing resources. In contrast, column compression can compress big fields that are infrequently accessed and reduce the space for storing whole rows of fields, so as to improve read and write access efficiency. Supported querying the value of the `character_set_client_handshake` parameter. Supported the manual cleaning of page cache occupied by log files by using the `posix_fadvise()` function based on the sliding window technique, so as to lower the memory pressure on the operating system and improve instance stability. Performance optimizations Optimized the parallelism of CREATE INDEX: A merge sort is needed in a temp table in the process of creating indexes, which is time-consuming. The parallel temp-table merge sort algorithm is now supported to reduce the time by more than 50%. Optimized the mechanism of scanning and flushing the dirty pages tracked in the flush list, so as to solve the performance fluctuation issue while creating indexes and thus improve the system stability. Bug fixes Fixed the memory leak issue. Implemented the JSON bug fixes provided in MySQL 8.0 to improve the stability of using JSON. Fixed the error (error code: 1032) caused by hash scans. Fixed concurrency security issues caused by hotspot update. Implemented the gcol bug fixes provided by MySQL in batches. Fixed the failure to compare DateTime data with String data in some cases. Fixed the bug where file handles cannot be released if source-replica buffer pool sync is enabled. Fixed the deadlocks caused by setting the `offline_mode` parameter and creating connections at the same time. Fixed the crashes caused by the `m_end_range` parameter incorrectly set in concurrent range queries. Fixed the issue where it takes a long time to execute an `UPDATE` statement on a temp table if a JSON column appears in the `GROUP BY` clause. |
20201231 | New features Supported using `NOWAIT` and `SKIP LOCKED` in `SELECT FOR UPDATE/SHARE`. Supported dynamic setting of thread pooling mode or connection pooling mode by using the `thread_handling` parameter. Supported source-replica buffer pool sync. Supported monitoring of user connection status. Monitoring items include sync/async IO, memory, log size, CPU time, and lock duration. Performance optimizations Optimized the transaction subsystem to improve the high concurrency performance. Optimized the time to start crash recovery for large transactions. Optimized redo log flushing. Optimized the buffer pool initialization time. Optimized UTF8/UTF8MB4 string efficiency. Optimized audit performance. Revoked the restriction on the value of `gtid_purged` being empty. Optimized the backup lock. `LOCK TABLES FOR BACKUP`, `LOCK BINLOG FOR BACKUP`, and `UNLOCK BINLOG` are supported. `FLUSH TABLES WITH READ LOCK` is used to take a backup of the database, but it blocks the whole database from providing service. In contrast, the three statements above use a lightweight backup lock to ensure data consistency during physical/logical backup while allowing the database to providing service. Optimized the `drop table` operations on big tables. Bug fixes Fixed the hang issue when querying `performance_schema`. Fixed the overflow issue of the `digest_add_token` function. Fixed the crash caused by ibuf access when the `TRUNCATE TABLE` command was executed. Fixed the query correctness issue caused by const propagation when `LEFT JOIN` statement is used. |
20200930 | Performance optimizations Optimized the backup lock. `FLUSH TABLES WITH READ LOCK` is used to take a backup of the database, but it blocks the whole database from providing service. Therefore, a lightweight backup lock is provided in this version. Optimized the `drop table` operations on big tables. The `innodb_fast_ahi_cleanup_for_drop_table` parameter helps significantly reduce the time it takes to clean up adaptive hash indexes when dropping big tables. Bug fixes Fixed the crash caused by ibuf access when TRUNCATE TABLE was executed. Fixed cold backup failures when the quick column adding feature was enabled. Fixed performance degradation caused by frequently releasing InnoDB memory table objects. Fixed the query correctness issue caused by const propagation when `LEFT JOIN` statement is used. Fixed the core issue caused by rule class name conflict between SQL throttling and query rewrite. Fixed the concurrent update issue caused by the `INSERT ON DUPLICATE KEY UPDATE` statement in multiple sessions. Fixed the `duplicate key error` caused by concurrent INSERTs when `auto_increment_increment` is used. Fixed the crashes caused by evicting InnoDB memory objects. Fixed concurrency security issues caused by hotspot update. Fixed the coredump issue when enabling the thread pool after jemalloc was upgraded to v5.2.1. Fixed the incomplete audit log issue caused by fwrite error-free handling. Fixed the issue where `mysqld_safe` failed to print logs when it was started by a root user. Fixed the increase in the size of the DDL log file caused by `ALTER TABLE EXCHANGE PARTITION`. |
20200701 | Bug fixes Fixed the INNOBASE_SHARE index mapping error. |
20200630 | New features Supported using `NOWAIT` and `SKIP LOCKED` in `SELECT FOR UPDATE/SHARE` statements. Supported large transaction optimization, which can solve such problems as source-replica delay and backup failures caused by large transactions. Optimized audit performance to support async audit. Bug fixes Fixed the overflow of the `digest_add_token` function. Fixed the instance crash caused by `insert blob`. Fixed the source-replica replication interruption when a hash scan failed to find the record while updating the same row in an event. Fixed the hang issue when querying `performance_schema`. |
20200331 | New features Added the official MySQL 5.7.22 JSON series functions. Supported the hotspot update feature as described in Real-Time Session for ecommerce flash sale scenarios. Supported the SQL throttling feature as described in Real-Time Session. Supported encryption with custom KMS keys. Bug fixes Fixed the crash caused by phrase search under multi-byte character sets in full-text index. Fixed the crash of the CATS lock scheduling module in high-concurrency scenarios. |
20190830 | New features Supported skipping the corrupted data and continuing to parse when a binlog is corrupted. If the source instance and binlog are both damaged, this feature helps restore data from the replica database for use as much as possible. Supported syncing data from non-GTID to GTID mode. Supported querying the "user thread memory usage" by executing the `SHOW FULL PROCESSLIST` statement. Supported quick column adding for tables as described in Overview. This feature does not replicate the data or use disk capacity/IO, and can implement changes in real time during peak hours. Supported persistent auto-increment values. Bug fixes Fixed the issue where replication would be interrupted if the column name in a `GRANT` statement contained reserved words. Fixed the issue where SQL execution efficiency dropped when reverse scan was performed on a partitioned table. Fixed the issue where the query result had an exception due to data inconsistency when using virtual column index and primary key. Fixed the issue where data was missing due to InnoDB primary key range queries. Fixed the issue where the system crashed when a DDL statement was executed for a table with spatial indexes. Fixed the issue where source-replica disconnection occurred when the binlog size was too large and the file length in the heartbeat information exceeded the limit. Fixed the issue where other events could not be executed as scheduled when an event was deleted. Fixed the issue where the aggregate query result was incorrect. |
20190615 | New features Supported transparent data encryption (TDE). |
20190430 | Bug fixes Fixed the issue where null pointer reference occurred when the LONGTEXT feature was used in subqueries. Fixed the issue where source-replica disconnection occurred due to hash scan. Fixed the issue where the replica I/O thread was interrupted due to source binlog switch. Fixed the crash caused by the use of `NAME_CONST`. Fixed the illegal mix of collation error caused by character set. |
20190203 | New features Supported async drop of big tables. You can clear files asynchronously and slowly to avoid business performance fluctuation caused by dropping big tables. To apply for this feature, submit a ticket. Supported CATS lock scheduling. Supported creating and dropping temp tables and CTS syntax in transactions when GTID is enabled. To apply for this feature, submit a ticket. Supported implicit primary keys. To apply for this feature, submit a ticket. Supported users without super privileges to kill sessions of other users by configuring the `cdb_kill_user_extra` parameter (default value: `root@%`). Supported enterprise-grade encryption functions. To apply for this feature, submit a ticket. Bug fixes Fixed the issue where replication was interrupted when binlog cache file ran out of space. Fixed the hard error when `fsync` returned `EIO` and retries were made repeatedly. Fixed the issue where replication was interrupted and could not be recovered due to GTID holes. |
20180918 | New features Supported automatic killing of idle transactions to reduce resource conflicts. To apply for this feature, submit a ticket. Supported automatically changing the storage engine from MEMORY to InnoDB: If the global variable `cdb_convert_memory_to_innodb` is `ON`, the engine will be changed from MEMORY to InnoDB when a table is created or modified. Supported invisible indexes. Supported memory management with jemalloc, which can replace the jlibc memory management module to reduce memory usage and improve allocation efficiency. Performance optimizations Optimized binlog switch to reduce the `rotate` lock duration and improve system performance. Accelerated the crash recovery. Bug fixes Fixed the issue where an event became invalid due to source-replica switch. Fixed the crash caused by `REPLAY LOG RECORD`. Fixed the issue where the query result was incorrect due to loose index scans. |
20180530 | New features Supported SQL auditing. Supported table-level concurrent replication. To apply for this feature, submit a ticket. Performance optimizations Optimized replica instance locks to improve the sync performance of replica instances. Optimized the pushdown of the `SELECT ... LIMIT` statement. Bug fixes Fixed the issue where switch failed due to inconsistent positions between `relay_log_pos` and `master_log_pos`. Fixed the crash caused by `Crash on UPDATE ON DUPLICATE KEY`. Fixed the `Invalid escape character in string.` error when a JSON column was imported. |
20171130 | New features Supported the `information_schema.metadata_locks` view to query the MDL grant and wait status in the current instance.Supported the `ALTER TABLE NO_WAIT | TIMEOUT` syntax to grant DDL operations wait timeout. To apply for this feature, submit a ticket. Supported thread pool. To apply for this feature, submit a ticket. Bug fixes Fixed the error of `innodb_buffer_pool_pages_data` parameter overflow by calculating it based on `bytes_data`. Fixed the issue where speed limit plugin became unavailable in async mode. |
Minor Version | Description |
20220303 | Bug fixes Fixed the abnormal release when the memory allocated by `mem_strdup` was used for `row_mysql_truncate_t::file_name` during async drop of big tables. |
20220302 | Bug fixes Fixed the memory leak issue in `sql_update.cc`. |
20220301 | New features Supported dynamically configuring the spin cycle (0–100) with the dynamic parameter `innodb_spin_wait_pause_multiplier`. This parameter is used for temporary adjustment and does not support fixing the change through the console. Supported printing deadlock loop information.After this feature is enabled through the parameter `innodb_print_dead_lock_loop_info`, when a deadlock occurs, you can run `show engine innodb status` to view the deadlock loop information. Bug fixes Fixed the issue where anonymous GTID transactions were generated in memory tables after replica restart. Fixed the issue where upgrade failed due to the missing `root@localhost` permission. Fixed the issue where the values of monitoring variables such as `innodb_row_lock_current_waits` were abnormal. Fixed the SQL type mapping error in the audit plugin. |
20211030 | New features Supported large transaction replication optimization. Performance optimizations Accelerated the application of hash scan. Bug fixes Fixed the OOM caused by a large number of table queries. Fixed the infinite loop error caused by setting `innodb_thread_concurrecy` to 0. Fixed the issue where there were no statistics information for long records. Fixed the SBM jump error. Fixed the `LOCK_binlog_end_pos hang` error. |
20210630 | New features Supported large transaction replication optimization. Bug fixes Fixed the incorrect copy when Index Merge was enabled. Fixed the issue where the replication would be interrupted if the execution of CREATE TABLE SELECT was interrupted when `cdb_more_gtid_feature_supported` was enabled in row mode. Fixed the bug that `max(id)` was greater than AUTO_INCREMENT in SHOW CREATE TABLE. |
20201231 | Bug fixes Fixed the error (error code: 1032) caused by hash scans. Fixed the issue where the source-replica auto-increment values were inconsistent due to the `REPLACE INTO` statement in `ROW` format. Fixed the memory leak caused by not freeing up the memory requested for parsing SQL statements. Fixed the issue where the sql_mode check is skipped when running `CREATE TABLE AS SELECT`. Fixed the issue where the `sql_mode` check was skipped when inserting default values. Fixed the issue where the `sql_mode` check was skipped when running UPDATE with bound parameters. |
20200915 | New features Supported the SQL throttling feature as described in Real-Time Session. Performance optimizations Optimized the initialization acceleration of buffer pool. Bug fixes Fixed the hang issue of `rename table` on both source and replica. Fixed the crash when `event_scheduler` was set to `disable` and `cdb_skip_event_scheduler` was changed from `on` to `off`. Fixed the `sync_wait_array` assertion failure when the maximum number of connections of `tencentroot` was not counted in `srv_max_n_threads`. Fixed the crash of source-replica parallel replication caused by the system table structure inconsistency between TencentDB for MySQL 5.6 and other cloud vendors' MySQL 5.6. Fixed the `INSERT ON DUPLICATE KEY UPDATE THE WRONG ROW` error. Fixed the `index_mapping` error. Fixed the MTR failure. Fixed the source-replica replication interruption when a hash scan failed to find the record while updating the same row in an event. |
20190930 | New features Supported querying the user thread memory usage by executing the `SHOW FULL PROCESSLIST` statement. Bug fixes Fixed GTID holes caused by the replication filter of the replica. Fixed the issue where source-replica disconnection occurred when the binlog size was too large and the file length in the heartbeat information exceeded the limit. Fixed the illegal mix of collation error caused by character set. Fixed the issue where the source-replica disconnection occurred due to hash scan. Fixed the crash caused by the use of `NAME_CONST`. Fixed the issue where the replica I/O thread was interrupted due to source binlog switch. Fixed the error of incompatible backups due to `innodb_log_checusum`. |
20190530 | Bug fixes Fixed the issue where dirty data might be read in RC mode. Fixed the issue where replica instance replay might fail due to the drop of temp table. Fixed the deadlock issue under high concurrency. |
20190203 | New features Supported async drop of big tables. You can clear files asynchronously and slowly to avoid business performance fluctuation caused by dropping big tables. To apply for this feature, submit a ticket. Supported users without super privileges to kill sessions of other users by configuring the `cdb_kill_user_extra` parameter (default value: `root@%`). Supported creating and dropping temp tables and CTS syntax in transactions when GTID is enabled. To apply for this feature, submit a ticket. Performance optimizations Optimized the replication and replay of partitioned tables to improve efficiency. Bug fixes Fixed the source-replica data inconsistency issue caused by insufficient temporary space. Fixed the issue of suspended hot record updates. Fixed the issue where the value of `Seconds_Behind_Master` was abnormal during concurrent replication. |
20180915 | New features Supported automatically changing the storage engine from MEMORY to InnoDB: If the global variable `cdb_convert_memory_to_innodb` is `ON`, the engine will be changed from MEMORY to InnoDB when a table is created or modified. Supported automatic killing of idle transactions to reduce resource conflicts. To apply for this feature, submit a ticket. Bug fixes Fixed the crash caused by `REPLAY LOG RECORD`. Fixed the error of time data inconsistency between source and replica due to decimal precision issues. |
20180130 | New features Supported thread pool. To apply for this feature, submit a ticket. Supported dynamically modifying replication filtering rules for replica nodes. Performance optimizations Reduced performance fluctuation caused by `DROP TABLE`. Bug fixes Fixed the database crash caused by authentication password strings. |
20180122 | New features Supported SQL auditing. Bug fixes Fixed the integer overflow issue. Fixed the error caused by queries using full-text index. Fixed the issue where the replica crashed during replication. |
20170830 | Bug fixes Fixed the issue where binlog speed limit became invalid in async mode. Fixed the issue where the `buffer_pool` status was abnormal. Fixed the issue where `SEQUENCE` and implicit primary key conflicted. |
20170228 | Bug fixes Fixed the character encoding bug in `DROP TABLE`. Fixed the issue where a table contained symbols like decimal points or `replicate-wild-do-table` couldn't be used to filter databases correctly. Fixed the issue where SQL threads exited too early after the replica had a `rotate` event. |
20161130 | Performance optimizations Split the `lock_log` lock to reduce the time used by lock logs and improve the concurrency performance. Separated the ACK thread of the source to reduce the response time. Prohibited the user thread from being killed while waiting for ACK in order to prevent phantom reads. Fixed the unnecessary `lock_sync` lock when `sync_binlog != 1`. |
Was this page helpful?