MySQL, the widely-used open-source relational database management system, has unveiled its latest version, MySQL 8.3. It brings new features and some removals, promising to streamline the database operations. Let’s take a look at them.
New Features in MySQL 8.3
Replication with Tagged GTIDs
A standout feature in MySQL 8.3 is the introduction of tagged Global Transaction Identifiers (GTIDs) in MySQL Replication and Group Replication. This enhancement allows for the grouping and easy identification of transaction sets.
The new GTID format, “UUID:TAG:NUMBER,” enables unique naming for GTIDs linked to specific transaction groups. This way, users can distinguish between data and administrative operations through GTID comparisons, enhancing replication efficiency and organization.
In light of this, this version introduces a new privilege, “TRANSACTION_GTID_TAG,” necessary for setting GTID values, allowing database administrators to control who can assign GTIDs, further refining transaction management.
JSON Format Versioning in EXPLAIN
MySQL 8.3 introduces a server system variable, “explain_json_format_version,” allowing users to choose between two versions of JSON output formats in “EXPLAIN FORMAT=JSON” statements. This feature ensures better compatibility with future versions of the MySQL Optimizer, enhancing long-term usability.
Thread Pool Plugin Enhancements
The thread pool plugin now includes additional information in the MySQL Performance Schema. New tables and columns provide comprehensive insights into thread pool connections and states, facilitating better performance analysis.
Other Notable Changes
The default value of the ‘binlog_transaction_dependency_tracking‘ system variable has been altered to ‘WRITESET,’ signaling a gradual phasing out of this feature.
The release also introduces the ‘WITH_LD‘ CMake option, allowing users to specify their choice of linker and enhancements to MySQL Enterprise Data Masking and De-Identification.
Lastly, the MySQL Performance Schema has been enriched with detailed thread pool connection information, a valuable resource for performance tuning.
Removals in MySQL 8.3: Out with the Old
MySQL 8.3 also sees the removal of several features and functions, emphasizing the shift towards more efficient and modern database practices.
Key C API functions like
mysql_list_fields(), and others have been removed, with alternatives suggested to perform similar operations.
Moreover, the “FLUSH HOSTS” statement, used to clear the internal cache of hostnames, previously deprecated, has now been removed. Users are directed to use alternative methods for clearing the host cache.
Various replication and server options, such as “–slave-rows-search-algorithms” and “–log_bin_use_v1_events,” have also been removed, steering users towards more efficient and modern practices.
Lastly, MySQL 8.3 restricts the usage of writesets for conflict checks to row-based logging, indicating a refined approach to binary log transaction dependency tracking.
In light of all these changes, users are encouraged to familiarize themselves with them to leverage the database’s full potential in their db management tasks.