mysql8.和8.4的差异
官网:https://dev.mysql.com/doc/refman/8.4/en/mysql-nutshell.html#mysql-nutshell-additions 地址
Features Added or Changed in MySQL 8.4
MYSQL8.4添加或更改的功能
The following features have been added to MySQL 8.4:
mysql8.4新增了一下功能
-
MySQL native password authentication changes(密码认证的改变). Beginning with MySQL 8.4.0, the deprecated
mysql_native_password
authentication plugin is no longer enabled by default. To enable it, start the server with--mysql-native-password=ON
(added in MySQL 8.4.0), or by includingmysql_native_password=ON
in the[mysqld]
section of your MySQL configuration file (added in MySQL 8.4.0).For more information about enabling, using, and disabling
mysql_native_password
, see Section 8.4.1.1, “Native Pluggable Authentication”. -
InnoDB system variable default value changes(环境变量默认值的改变). The default values for a number of server system variables relating to the
InnoDB
storage engine were changed in MySQL 8.4.0, as shown in the following table: mysql8.4innodb存储引擎系统变量默认值的变化如系表 -
Table 1.1 InnoDB system variable default values in MySQL 8.4 differing from MySQL 8.0
InnoDB System Variable Name New Default Value (MySQL 8.4) Previous Default Value (MySQL 8.0) innodb_buffer_pool_in_core_file
OFF
ifMADV_DONTDUMP
is supported, otherwiseON(如果支持MADV转存,此参数关闭,其他情况开启)
ON innodb_buffer_pool_instances
If
innodb_buffer_pool_size
<= 1 GiB, theninnodb_buffer_pool_instances=1
If
innodb_buffer_pool_size
> 1 GiB, then this is the minimum value from the following two calculated hints in the range of 1-64: 内存大于1G的情况下面计算值去小值作为默认值-
Buffer pool hint: Calculated as 1/2 of (
innodb_buffer_pool_size
/innodb_buffer_pool_chunk_size
) -
CPU hint: Calculated as 1/4 of the number of available logical processors
8 (or 1 if innodb_buffer_pool_size
< 1 GiB)innodb_change_buffering
none(那类操作使用缓冲池,8.4默认禁用)
all(insert,delete,update 都能使用Change Buffer)
--innodb-dedicated-server
If ON
, the value ofinnodb_flush_method
is no longer changed as in MySQL 8.0, but the calculation ofinnodb_redo_log_capacity
is changed from memory-based to CPU-based. For more information, see Section 17.8.12, “Enabling Automatic InnoDB Configuration for a Dedicated MySQL Server”. (The actual default value of this variable isOFF
; this is unchanged from MySQL 8.0.)OFF
innodb_adaptive_hash_index
OFF
ON
innodb_doublewrite_files
2 innodb_buffer_pool_instances
* 2innodb_doublewrite_pages
128 innodb_write_io_threads
, which meant a default of 4innodb_flush_method
on LinuxO_DIRECT
if supported, otherwisefsync
fsync innodb_io_capacity
10000 200 innodb_io_capacity_max
2 * innodb_io_capacity
2 * innodb_io_capacity
, with a minimum default value of 2000innodb_log_buffer_size
67108864 (64 MiB) 16777216 (16 MiB) innodb_numa_interleave
ON(参数的主要作用是优化InnoDB存储引擎在NUMA系统中的性能。当该参数设置为ON时,InnoDB会将数据块分散地存储在不同的节点上,以利用NUMA系统的优势,提高访问性能3。这种分散存储可以减少因内存访问延迟导致的性能下降问题)
OFF
innodb_page_cleaners
innodb_buffer_pool_instances
4 innodb_parallel_read_threads
available logical processors / 8(可利用的cpu的1/8), with a minimum default value of 4 4 innodb_purge_threads
1 if available logical processors is <= 16, otherwise 4 4 innodb_read_io_threads
available logical processors / 2, with a minimum default value of 4 4 innodb_use_fdatasync
ON(在支持 fdatasync() 系统调用的平台上(只支持 Linux 且需内核版本高于 2.2),启用 innodb_use_fdatasync 允许使用 fdatasync() 来代替 fsync() 系统调用来进行操作系统刷新。除非后续数据检索需要,否则 fdatasync() 调用不会刷新文件元数据的更改,从而提供潜在的性能优势。)
OFF
temptable_max_ram
3% of total memory, with a default value within a range of 1-4 GiB 1073741824 (1 GiB) temptable_max_mmap
0, which means OFF 定义 TempTable 存储引擎在开始将数据存储到磁盘上的 InnoDB 内部临时表之前,被允许从内存映射的临时文件分配的最大内存量(以字节为单位)
1073741824 (1 GiB) temptable_use_mmap
(Deprecated in MySQL 8.0.26)OFF 8.0.26开始被废弃
-
Clone plugin. The clone plugin versioning requirement was relaxed to allow cloning between different point releases in the same series. In other words, only the major and minor version numbers must match when previously the point release number also had to match.
For example, clone functionality now permits cloning 8.4.0 to 8.4.14 and vice-versa.
克隆组件的变化了:允许相同版本系统进行克隆。即可8.4.0和8.4.14直接可以直接克隆。
SASL-based LDAP authentication on Windows. On Microsoft Windows, the server plugin for SASL-based LDAP authentication is now supported. This means that Windows clients can now use GSSAPI/Kerberos for authenticating with the authentication_ldap_sasl_client
plugin.
For more information, see SASL-Based LDAP Authentication (Without Proxying).
SASL-based LDAP再windows上认证的支持。
MySQL Replication: SOURCE_RETRY_COUNT change. The default value for the SOURCE_RETRY_COUNT
option of the CHANGE REPLICATION SOURCE TO
statement was changed to 10. This means that, using the default values for this option and for SOURCE_CONNECT_RETRY
(60), the replica waits 60 seconds between reconnection attempts, and keeps attempting to reconnect at this rate for 10 minutes before timing out and failing over.
This change also applies to the default value of the deprecated --master-retry-count
server option. (You should use SOURCE_RETRY_COUNT
, instead.)
For more information, see Section 19.4.9.1, “Asynchronous Connection Failover for Sources”.
MySQL 复制:SOURCE_RETRY_COUNT更改。CHANGE REPLICATION SOURCE TO 语句的 SOURCE_RETRY_COUNT 选项的默认值已更改为 10。这意味着,使用此选项和SOURCE_CONNECT_RETRY (60) 的默认值,副本将在重新连接尝试之间等待 60 秒,并在超时和故障转移之前继续尝试以此速率重新连接 10 分钟。此更改也适用于已弃用的 --master-retry-count 服务器选项的默认值。(您应该改用 SOURCE_RETRY_COUNT。+
MySQL Replication: tagged GTIDs
MySQL 复制:标记的 GTID。MySQL 复制和组复制中使用的全局事务标识符 (GID) 的格式已扩展为能够识别事务组,从而可以为属于特定事务组的 GTID 分配唯一名称。例如,只需比较它们的 GTID,就可以很容易地将包含数据作的事务与 Management作产生的事务区分开来。新的 GTID 格式为 UUID:TAG:NUMBER,其中 TAG 是最多 8 个字符的字符串,通过将 gtid_next 系统变量的值设置为 AUTOMATIC:TAG 来启用,这是此版本中添加的(有关标签格式和其他信息,请参阅变量的描述)。此标签对于源自当前会话的所有事务(除非使用 SET gtid_next 进行更改),并在提交此类事务时应用,或者在使用组复制时,在认证时应用。也可以将 gtid_next 设置为 UUID:TAG:NUMBER,以将单个交易的 UUID 设置为任意值,并为其分配自定义标签。UUID 和 NUMBER 的分配与以前的 MySQL 版本相同。无论哪种情况,用户都有责任确保标签对于给定的复制拓扑是唯一的。GTID 的原始 UUID:NUMBER 格式继续保持不变,如以前版本的 MySQL 中实现的那样;不需要使用 GTID 更改现有复制设置。将 gtid_next 设置为 AUTOMATIC:TAG 或 UUID:TAG:NUMBER 需要此版本中添加的新TRANSACTION_GTID_TAG权限;在原始服务器以及副本应用程序线程的 PRIVILEGE_CHECKS_APPLIER 上都是如此。这也意味着管理员现在可以将 SET @gtid_next=AUTOMATIC:TAG 或 UUID:TAG:NUMBER 的使用限制为一组所需的 MySQL 用户或角色,以便只有与给定数据或作域相关的用户才能提交具有分配标签的新事务。注意 从以前版本的 MySQL 升级到 MySQL 8.4 时,任何已经具有 BINLOG_ADMIN 权限的用户帐户或角色都将自动授予 TRANSACTION_GTID_TAG 权限。内置函数 GTID_SUBSET()、GTID_SUBTRACT() 和 WAIT_FOR_EXECUTED_GTID_SET() 与标记的 GTID 兼容。有关更多信息,请参见 gtid_next 系统变量和 TRANSACTION_GTID_TAG 权限的说明,以及第 19.1.4 节“在联机服务器上更改 GTID 模式”。
Replication: SQL_AFTER_GTIDS and MTA.
START REPLICA 语句选项SQL_AFTER_GTIDS现在与多线程应用程序兼容。(以前,当启用 MTA 并且用户尝试使用此选项时,该语句会引发警告ER_MTA_FEATURE_IS_NOT_SUPPORTED,并且副本将切换到单线程模式。这意味着需要赶上缺失事务的副本现在可以这样做,而不会失去多线程的性能优势。有关更多信息,请参见第 15.4.2.4 节“ START REPLICA 语句”以及 replica_parallel_workers 系统变量的文档。另请参见第 19.2.3.2 节“监视复制应用程序器工作线程”和第 25.7.11 节“使用多线程应用程序进行 NDB 群集复制”
主备关系设置改变:
CHANGE MASTER TO: Use CHANGE REPLICATION SOURCE TO.
RESET MASTER: Use RESET BINARY LOGS AND GTIDS.
SHOW MASTER STATUS: Use SHOW BINARY LOG STATUS.
PURGE MASTER LOGS: Use PURGE BINARY LOGS.
SHOW MASTER LOGS: Use SHOW BINARY LOGS.
Removed SQL statements relating to replicas are listed here:
START SLAVE: Use START REPLICA.
STOP SLAVE: Use STOP REPLICA.
SHOW SLAVE STATUS: Use SHOW REPLICA STATUS.
SHOW SLAVE HOSTS: Use SHOW REPLICAS.
RESET SLAVE: Use RESET REPLICA
MASTER_AUTO_POSITION: Use SOURCE_AUTO_POSITION.
MASTER_HOST: Use SOURCE_HOST.
MASTER_BIND: Use SOURCE_BIND.
MASTER_UseR: Use SOURCE_UseR.
MASTER_PASSWORD: Use SOURCE_PASSWORD.
MASTER_PORT: Use SOURCE_PORT.
MASTER_CONNECT_RETRY: Use SOURCE_CONNECT_RETRY.
MASTER_RETRY_COUNT: Use SOURCE_RETRY_COUNT.
MASTER_DELAY: Use SOURCE_DELAY.
MASTER_SSL: Use SOURCE_SSL.
MASTER_SSL_CA: Use SOURCE_SSL_CA.
MASTER_SSL_CAPATH: Use SOURCE_SSL_CAPATH.
MASTER_SSL_CIPHER: Use SOURCE_SSL_CIPHER.
MASTER_SSL_CRL: Use SOURCE_SSL_CRL.
MASTER_SSL_CRLPATH: Use SOURCE_SSL_CRLPATH.
MASTER_SSL_KEY: Use SOURCE_SSL_KEY.
MASTER_SSL_VERIFY_SERVER_CERT: Use SOURCE_SSL_VERIFY_SERVER_CERT.
MASTER_TLS_VERSION: Use SOURCE_TLS_VERSION.
MASTER_TLS_CIPHERSUITES: Use SOURCE_TLS_CIPHERSUITES.
MASTER_SSL_CERT: Use SOURCE_SSL_CERT.
MASTER_PUBLIC_KEY_PATH: Use SOURCE_PUBLIC_KEY_PATH.
GET_MASTER_PUBLIC_KEY: Use GET_SOURCE_PUBLIC_KEY.
MASTER_HEARTBEAT_PERIOD: Use SOURCE_HEARTBEAT_PERIOD.
MASTER_COMPRESSION_ALGORITHMS: Use SOURCE_COMPRESSION_ALGORITHMS.
MASTER_ZSTD_COMPRESSION_LEVEL: Use SOURCE_ZSTD_COMPRESSION_LEVEL.
MASTER_LOG_FILE: Use SOURCE_LOG_FILE.
MASTER_LOG_POS: Use SOURCE_LOG_POS.