前言
MySQL8.3发布,8.0.36一并发布。8.0.36现在是修复bug版本,基本没有新功能增加。
生产建议8.0.32以上版本。8.1,8.2,8.3不是LTS版本,不适合生产。
新增的功能
1、带标签的gtid
8.3版本改变了gtid的格式,在gtid中加了标签。现在格式为:UUID:TAG:NUMBER。其中tag部分是新增。设置参数如下。
gtid_next = AUTOMATIC:TAG
2 EXPLAIN FORMAT=JSON 可选版本为1或者2
mysql> SELECT @@explain_json_format_version;
+-------------------------------+
| @@explain_json_format_version |
+-------------------------------+
| 1 |
+-------------------------------+
1 row in set (0.00 sec)
mysql> SET @@explain_json_format_version = 2;
Query OK, 0 rows affected (0.00 sec)
mysql> SELECT @@explain_json_format_version;
+-------------------------------+
| @@explain_json_format_version |
+-------------------------------+
| 2 |
+-------------------------------+
1 row in set (0.00 sec)
3 binlog_transaction_dependency_tracking参数默认值改为WRITESET
4 WITH_LD CMake 选项
如果未指定链接器,则使用标准的链接器。WITH_LD也取代了在MySQL 8.3中移除的USE_LD_LLD CMake选项。
5 MySQL企业数据脱敏和去标识
6 PS中增加线程池插件的连接信息
7 information_schema 中PROCESSLIST 表的用法
在MySQL 8.0.35和8.2.0中,INFORMATION_SCHEMA.PROCESSLIST表已被弃用,但人们仍然对跟踪其使用情况感兴趣。此版本增加了两个系统状态变量,提供关于对PROCESSLIST表的访问信息,列在下面:Deprecated_use_i_s_processlist_count提供自服务器上次启动以来查询中对PROCESSLIST表的引用次数。Deprecated_use_i_s_processlist_last_timestamp存储了PROCESSLIST表上次访问的时间。这是一个时间戳值(自Unix纪元以来的微秒数)。
8 刷新数据脱敏字典
增加 masking_dictionaries_flush()函数;增加 component_masking.dictionaries_flush_interval_seconds 系统参数。
未来将移除的功能
1 C API 函数移除
2 FLUSH HOSTS 语句移除
3 删除复制设置和参数
--slave-rows-search-algorithms移除 log_bin_use_v1_events 移除 --relay-log-info-file, --relay-log-info-repository, --master-info-file, --master-info-repository移除 transaction_write_set_extraction移除 group_replication_ip_whitelist:用group_replication_ip_allowlist 替代 group_replication_primary_member不再需要,查看performance_schema.replication_group_members中的member_role字段。
4 --skip-host-cache 参数移除
用--host-cache-size=0启动参数
5 --innodb 和 --skip-innodb 系统参数移除,因为innodb是默认存储引擎,没有可能不用。
6 --character-set-client-handshake 和 --old-style-user-limits 系统参数移除。
7 cmake参数移除
USE_LD_LLD 被 WITH_LD=lld取代;WITH_BOOST, DOWNLOAD_BOOST, DOWNLOAD_BOOST_TIMEOUT被移除,MySQL原带现在包含了Boost库。
8 在GTID复制模式下的IGNORE_SERVER_IDS处理
CHANGE REPLICATION SOURCE TO IGNORE_SERVER_IDS = ();
9 二进制日志事务依赖跟踪和日志格式
发现使用writeset信息进行冲突检测会导致依赖跟踪出现问题。因此,我们现在限制了writeset在冲突检测中的使用,仅当基于行的日志记录生效时才可以使用。
这意味着,从这个版本开始,如果binlog_transaction_dependency_tracking设置为WRITESET或WRITESET_SESSION,binlog_format必须是ROW;MIXED在这种情况下不再受支持。