iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >MySQL8.0新增配置参数详解
  • 440
分享到

MySQL8.0新增配置参数详解

2024-04-02 19:04:59 440人浏览 八月长安
摘要

Mysql8.0新增或改进了数据字典、原子DDL、安全和账户、资源管理、InnoDB增强、字符集支持、JSON增强、字段类型支持、优化器、通用表达式、窗口函数、正则表达式支持、内部临时表、日志、备份锁等特性

Mysql8.0新增或改进了数据字典、原子DDL、安全和账户、资源管理、InnoDB增强、字符集支持、JSON增强、字段类型支持、优化器、通用表达式、窗口函数、正则表达式支持、内部临时表、日志、备份等特性,mysql本身是一个配置比较多比较复杂的数据库,那么新的版本中有哪些参数项是新增的用来控制这些新特性的使用那?接下来我们对新增的配置项进行逐一分析。
 activate_all_roles_on_login
此参数在版本8.0.2引入,是一个可以动态调整的global级参数,默认值为OFF。此参数用于控制在账户登录时是否激活已经授予的角色,如果为ON则授予的角色会被激活,设置为OFF时只能通过SET DEFAULT ROLE显式激活用户角色。activate_all_roles_on_login设置只在账户登录或者开始执行存储过程时生效,如果想更改session的role需要执行SET ROLE语句。
 binlog_expire_logs_seconds
参数在版本8.0.1中引入,是可以动态调整的global级参数,8.0.4之前默认值为0,8.0.11之后为2592000也就是30天。之前版本binlog自动清理时间以参数expire_logs_days也就是以天为单位,当前两个参数并存并且有一个非0时则以非0的参数为binlog自动清理时间,如果两个都为非0值则以binlog_expire_logs_seconds为binlog清理时间忽略expire_logs_days参数设置。
 binlog_row_metadata
此参数在8.0.1版本引入,是可以动态调整的global级参数,默认值为MINIMAL,可以设置为FULL。此参数用于控制row格式下binlog中表的元数据数量,设置为MINMAL时记录符号标记、列字符集和空间类型,设置为FULL时会记录表所有的元数据,例如列名、枚举或集合所有的值、主键信息等等。
 binlog_row_value_options
此参数在8.0.3版本引入,是可以动态调整global级参数,默认值为’’,可以设置为PARTIAL_jsON。
当设置为PARTIAL_JSON并且binlog格式为ROW或者MIXED模式时,使用JSON_SET(),JSON_REPLACE()和 JSON_REMOVE()对JSON的列进行操作时,binlog只记录更新的部分,而不是记录整个JSON的变更,进而减少binlog大小。不过当对JSON文档的更改需要比当前文档更大的空间或者SERVER不能够进行部分更新时,binlog还是会记录整个JSON文档。
 binlog_transaction_dependency_history_size
此参数在版本8.0.1中引入,是可以动态调整的global级参数,默认值为25000,可以设置为0-1000000之间的任意整数。8.0基于WriteSet进行并行复制时,WriteSet是一个hash数组,binlog_transaction_dependency_history_size值就是这个hash数组的最大值。
 binlog_transaction_dependency_tracking
此参数在8.0.1版本引入,是可以动态调整的global级枚举类型参数,默认值为COMMIT_ORDER,也可以设置为WRITESET、WRITESET_SESSION。此参数用于主库决定事务间在从库进行多线程复制的依赖模式。
COMMIT_ORDERE:根据主库事务提交时间戳进行并行,也就5.7的GroupCommit;
WRITESET:根据WriteSet进行并行,只要是不在同一个队列里的都可以并行;
WRITESET_SESSION: 根据WriteSet进行并行,但相同session的事务不会并行。
 caching_sha2_password_auto_generate_rsa_keys
在版本8.0.4引入,是不可动态调整的global级参数,默认值为ON,当OpenSSL被编译进Mysql时,根据此参数判断是否在启动时自动生成公钥和私钥文件。
 caching_sha2_password_private_key_path
同上,用于指定私钥文件路径及文件名,当设置为相对路径时存储在数据文件路径下。
 caching_sha2_password_public_key_path
同上,用于存放公钥文件路径及文件名称。
 cte_max_recursion_depth
在8.0.3版本引入,是可以动态调整的global、session级的整数类型参数,默认值为1000,可以设置为0 – 4294967295之间的任意整数。该参数用于设置公共表表达式的最大递归深度。如果SQL执行过程中递归深度超过该值则会中断执行。
 default_collation_for_utf8mb4
在8.0.11版本中引入,是可以动态调整的global、session级枚举类型参数。此参数值会从主库传递到从库,主要用于主从同步或者MGR中从8.0之前版本向8.0同步数据时来保持主从间以一致的排序规则来处理数据。
 histogram_generation_max_mem_size
8.0.2版本引入,是可以动态设置的global、session级参数,默认值为20000000,可以设置为1000000到18446744073709551615(32位系统为4294967295)之间任意值。当建立直方图时,需要将表的数据读入内存,但是当表过大时可能会将将大量数据读入内存,为规避这个风险,server层根据histogram_generation_max_mem_size设置进行计算,计算出读出多少行进入内存,进行取样。

 information_schema_stats_expiry
参数由8.03版本引入,是可以动态设置的global、session级参数。默认值为86400,可以设置为0到315360000之间热任意整数。
InfORMation_schema库中有一些列提供表的统计数据,统计数据会随着表中内容的变化进行更新。默认情况下MySQL检索mysql.index_stats 和mysql.table_stats两个字典表进行表信息检索,这样远比从存储引擎层检索相关信息高效的多。如果需要的表统计信息没有被缓存或者已经过期,则会从存储引擎获取相关统计信息并缓存到mysql.index_stats 和mysql.table_stats两个表中,在表统计信息过期之前,后来的查询都会使用此缓存信息。每个session可以独立设置information_schema_stats_expiry,默认值是86400秒也就是24小时,此数值最大可以设置为一年;如果想要更新某张表的统计信息执行ANALYZE TABLE即可;如果每次查询都想获取最新的统计信息,将此值设置成0即可,MySQL每次都会跳过mysql.index_stats 和mysql.table_stats两个字典表直接通过存储引擎获取统计信息。
 innodb_dedicated_server
参数在8.03版本中引入,是一个只能在启动时设置的global级参数。此参数设置为ON时,MySQL会根据检测到的内存大小设置innodb_buffer_pool_size、innodb_log_file_size、innodb_flush_method三个参数。有了这个参数我们就不用再写脚本根据内存大小去修改配置文件的这三个参数了,运维自动化又省了一步。当服务器MySQL与其他应用共享服务器内存时建议设置为OFF。那么MySQL具体的设置策略是什么那?
innodb_buffer_pool_size:
Detected Server Memory Buffer Pool Size
小于1G 128MiB (the innodb_buffer_pool_size default)
小于等于 4G Detected server memory 0.5
大于 4G Detected server memory
0.75
innodb_log_file_size:
Detected Server Memory Log File Size
<小于1GB 48MiB (the innodb_log_file_size default)
小于等于4GB 128MiB
小于等于8GB 512MiB
小于等于16GB 1024MiB
大于16GB 2048MiB
innodb_flush_method
当开启 innodb_dedicated_server时,刷盘方式会采用O_DIRECT_NO_FSYNC ,O_DIRECT_NO_FSYNC 不可用时将会采用默认的刷盘方式。需要注意的是,目前在linux中当文件大小发生变化时,O_DIRECT_NO_FSYNC 可能会导致系统hung住,因此不建议在linux中采用该刷盘方式。
 innodb_directories
参数在版本8.0.4中引入,只能在启动时指定,不能够动态调整。数据库启动时会根据此参数扫描innodb 表空间文件。在数据库离线时,我们可以通过指定该参数用于移动或者恢复表空间文件到指定的路径。
 innodb_log_spin_cpu_abs_lwm
参数在8.0.11版本中引入,是可以动态调整的全局参数,默认值为80,可以设置为0到4294967295之间的任意整数。此数值表示innodb用户线程刷redo进行自旋等待时CPU的低水位,当cpu使用率低于此值时不进行自旋等待。如果此值设置超过100例如150时,则表示在多核CPU时第一个核使用率为100%,第二个核使用率为50%。
 innodb_log_spin_cpu_pct_hwm
同上一个参数,默认值为50,可以设置为0到100之间的任意整数值。此参数表示innodb用户线程刷redo进行自旋等待的高水位,表示CPU总处理能力百分比,例如4核设置为50时,表示个2个核为100%。该参数核数计算以实际使用CPU为准,例如将mysqld进程绑定到48核中的4核,则该参数忽略其他44核。
 innodb_log_wait_for_flush_spin_hwm
参数在8.0.11版本中引入,是可以动态调整的全局整型参数,单位为毫秒,默认值为400可以设置为0到2^64-1(32位系统为2^32-1)之间的整数值,当用户线程等待刷redo超过innodb_log_wait_for_flush_spin_hwm毫秒后不再进行自旋。
 innodb_print_ddl_logsz
这个参数在8.03版本中引入是可以动态设置的global级参数。默认值为OFF,设置为ON时能够在标准错误输出,根据系统和配置的不同可能是error log、Linux终端或windows控制台。8.0引入了原子DDL的特性,InnoDB通过写DDL日志到mysql.innodb_ddl_log的方式来实现DDL的重做和回滚,但除非在debug模式下,mysql.innodb_ddl_log对用户是不可见的,可以通过设置innodb_print_ddl_logsz为ON来在错误输出中查看DDL的重做和回滚信息。
 innodb_redo_log_encrypt
这个参数在8.0.1版本中引入,是可以动态设置的global级参数,默认值为OFF。此参数用于控制redo log的加密,将内存中的redo写入磁盘时进行加密,从磁盘中读取redo log进内存时进行解密。Redo的元数据和加密秘钥存放第一个redo文件头部,如果启动前将此文件删除则会自动取消加密,如果有redo log已经加密存储,则会启动失败。
 innodb_stats_include_delete_marked
参数在8.0.1版本中引入,时可以动态设置的全局布尔类型参数,默认值为No。默认情况下,MySQL进行表统计信息计算时,会采用Repeatable-Read隔离级别,因此其他进程在采用Repeatable-Read及以上隔离级别查询时,数据和索引的统计信息已经排除掉了其他未提交事务中删除的数据,这样会导致执行计划不是最优。当开启innodb_stats_include_delete_marked时,优化器在计算统计数据时会将其他未提交事务中已删除的数据计算在内。
 innodb_undo_log_encrypt
这个参数在8.0.1版本引入,是可以动态设置的global级参数,默认值为OFF。只有在独立开启undo时此参数设置为ON才会生效。和redo一样,undo在写入磁盘时进行加密,从磁盘读取到内存时进行解密。Undo的加密和解密使用表空间的加密key。Undo的元数据和加密的密码存放于undo表空间文件头部。
 internal_tmp_mem_storage_engine
参数在8.0.2版本引入,是可以动态调整的全局、session级枚举类型参数,默认值为TempTable,也可以设置为Memory。优化器根据此参数选择内存中内部临时表的引擎类型。
 keyring_operations
参数在8.0.4版本引入,是可以动态设置的全局布尔型参数,默认值为ON。此参数设置是否允许对innodb表空间加密所用的秘钥进行迁移等操作。
 log_error_services
这个参数在8.0.2版本引入,是可以动态设置的global级参数,默认值为”log_filter_internal; log_sink_internal”。
 mandatory_roles
这个参数在8.0.2版本引入,是可以动态设置的global级参数,默认值为空字符串
 original_commit_timestamp
在8.0.1版本引入,是可以动态调整的session级整型参数。从库在进行主从复制重放binlog时,该参数设置为事务在主库提交时的时间戳,从公元纪元开始的毫秒数值。
 password_history
在版本8.0.3引入,是可以动态调整的全局整型参数,默认值为0,可以设置为0- 4294967295之间的任意整数。该参数数值用于设置历史密码可以再次使用之前需要进行密码修改的次数。设置为0则不会对历史密码是否可以重用进行限制。
 password_reuse_interval
在版本8.0.3版本引入,是可以动态调整的整型参数,默认值为0,可以设置为0- 4294967295之间的任意整数。该参数用于设置历史密码可以重用的间隔天数,设置为0则不会对历史密码重用进行时间间隔设置。
 performance_schema_max_digest_sample_age
在8.0.3版本引入,是可以动态调整的全局整型参数,默认值为60,可以设置为0- 1048576之间任意整数。该参数用于设置events_statements_summary_by_digest表中语句重新采用时间,如果有新的相同摘要值得语句被采集到并且当前表中的数据执行时间为performance_schema_max_digest_sample_age秒之前,则会使用当前语句替换events_statements_summary_by_digest中采样的语句。
 persisted_globals_load
参数只能在启动时指定,不可动态调整,默认值为ON。当设置为ON时,在读取完其他配置文件后会读取mysqld-auto.cnf文件,mysqld-auto.conf中配置项会覆盖其他配置文件的设置,参数设置以json形式存储于mysqld-auto.conf文件中。
8.0中支持通过set persist 语法改变当前运行实例和配置文件mysqld-auto.conf文件中的配置项,set persist_only语法只更改mysqld-auto.conf中的配置项,不改变当前实例的配置项。可以通过RESET PERSIST、RESET PERSIST system_var_name、RESET PERSIST IF EXISTS system_var_name语法取消全部或者某一个配置项。
 regexp_stack_limit
参数在8.0.4版本中引入,是可以动态设置的全局参数,默认值为8000000,可以设置为0到2147483647之间的任意整数。此数值表示MySQL用于正则表达式匹配函数REGEXP_LIKE()以及相关函数的最大堆栈内存可用字节数。
 regexp_time_limit
参数在8.0.4版本中引入,是可以动态设置的全局参数,默认值32。此参数表示匹配引擎进行正则表达式匹配函数REGEXP_LIKE()以及相关函数的最大步数,因而间接影响时间限制。
 rpl_read_size
参数在8.0.11版本中引入,是可以动态设置的全局整型参数,默认值为8192,可以设置为8192-4294967295之间的任意4k的倍数。该参数设置server从binlog和relaylog中一次读取的最小字节数。如果binlog或relaylog的IO压力较大,影响系统性能,可适当增大该参数,减少IO次数,进而减小磁盘IO压力。 master的dump线程和slave的coordinator 线程等所有读取binlog和relaylog的线程都会分配rpl_read_size大小的buffer,因此设置过大会对服务器内存有一定影响。
 resultset_metadata
参数在8.0.3版本中引入,是可以动态设置的session级枚举类型参数,默认值为FULL,可以设置为NONE。该参数控制传输元数据可选的链接server端是否传输元数据,设置为FULL时返回所有元数据,设置为NONE时不返回元数据。
 schema_definition_cache
是可以动态设置的global级参数,默认值为256,可以设置为256到524288之间的任意整数。此数值表示可以在字典对象缓存中保存的schema定义对象的最大数量。
 sha256_password_auto_generate_rsa_keys
此参数需要在MySQL启动时指定,不可以动态设置。默认值为ON。当MySQL用OpenSSL编译时,此参数可用。当data目录下没有RSA私有/公共密钥对时,此参数用于控制是否在启动时自动生成生成RSA私有/公共密钥对。
 sha256_password_private_key_path
此参数需要在MySQL启动时指定,不可以动态设置。默认值为private_key.pem。此参数用于设置私钥文件,设置为相对路径时保存在data目录下。
 sha256_password_public_key_path
此参数用于设置公钥文件。
ssl_fips_mode参数在8.0.11版本中引入,是可动态设置的global枚举类型参数。默认值OFF,可以设置为OFF (0) 、ON (1)、STRICT (2)。
 show_create_table_verbosity
参数在8.0.11版本引入,是可以动态设置的全局和session级布尔型参数,默认值为OFF。设置为OFF并且表行格式为默认值时,执行show create table显示的建表语句不会显示row_format值;启用该参数时,show create table的create table语句会一直显示row_format值。
 ssl_fips_mode
参数在8.0.11版本中引入,是可以动态设置global级枚举类型参数。默认值为OFF,可以设置为OFF (0) 、ON (1)、STRICT (2)。当将OpenSSL编译进MySQL并且FIPS模块可用时,用于设置FIPS模块是否在服务端可用。
 temptable_max_ram
参数在8.0.2版本中引入,是可以动态设置的global级整型参数,默认值为1073741824(1GB),可以设置为2097152-2^64-1的任意整数。当TempTable 存储引擎的表小于temptable_max_ram时,临时表不会存入磁盘。
MySQL8.0新增的的配置项较多,在配置线上应用时还是需要多注意参数的不同配置对数据库整体运行的影响,结合自己的业务的实际情况设置最符合自己生产需要的配置文件。

本文由京东商城数据库技术部张洋提供。

您可能感兴趣的文档:

--结束END--

本文标题: MySQL8.0新增配置参数详解

本文链接: https://www.lsjlt.com/news/39598.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • MySQL8.0新增配置参数详解
    MySQL8.0新增或改进了数据字典、原子DDL、安全和账户、资源管理、InnoDB增强、字符集支持、JSON增强、字段类型支持、优化器、通用表达式、窗口函数、正则表达式支持、内部临时表、日志、备份锁等特性...
    99+
    2022-10-18
  • MySQL8.0新增配置参数是什么
    这篇文章将为大家详细讲解有关MySQL8.0新增配置参数是什么,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。MySQL8.0新增或改进了数据字典、原子DDL、安全和账户、...
    99+
    2022-10-19
  • MySQL新增配置参数是什么
    这篇文章将为大家详细讲解有关MySQL新增配置参数是什么,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。activate_all_roles_on_login此参数在版本8...
    99+
    2022-10-19
  • mysql8.0基本参数配置说明
    ## 注意: # ## (1)本配置假设物理服务器内存为 16G,总表数量在300之内,中小型企业业务 # ## (2)请根据实际情况作调整部分参数 # ## (3)本人不对这些建议结果负相应责任 ##服务端参数配置 [m...
    99+
    2023-09-11
    mysql 数据库 Powered by 金山文档
  • tomcat内存配置及配置参数详解
    tomcat内存配置及配置参数详解 1、jvm内存管理机制: 1)堆(Heap)和非堆(Non-heap)内存 按照官方的说法:“Java 虚拟机具有一个堆,堆是运行时数据区域,所有类实例和数组的内存均从此处分配。堆是在 Java...
    99+
    2023-10-08
    tomcat Powered by 金山文档
  • 详解DockerCompose配置文件参数
    目录1. image2. build3. command4.container_name5.depends_on6.dns7. tmpfs8. entrypoint9.env_fil...
    99+
    2022-11-13
  • MYSQL配置参数优化详解
    MySQL参数优化对于不同的网站,及其在线量,访问量,帖子数量,网络情况,以及机器硬件配置都有关系,优化不可能一次性完成,需要不断的观察以及调试,才有可能得到最佳的效果。 1)连接请求的变量 1、max_...
    99+
    2022-10-18
  • JVM内存参数配置详解
    首先我们知道:JVM发生内存错误的类型 1、堆内存泄漏:OutOfMemory:Java heap space 此种内存泄漏,增加内存,只能暂时解决问题,并不能根治问题。必须要优化代...
    99+
    2022-11-13
  • Redis 主从配置和参数详解
    安装redis下载redis wget http://download.redis.io/releases/redis-3.0.7.tar.gz解压redis tar -xvf ...
    99+
    2022-10-18
  • Redis配置文件(redis.conf)参数详解
    redis配置文件参数说明:1. Redis默认不是以守护进程的方式运行,可以通过该配置项修改,使用yes启用守护进程daemonize no2. 当Redis以守护进程方式运行时,Redis默认会把pid...
    99+
    2022-10-18
  • Linux下MySQL安装配置 MySQL配置参数详解
    一、下载编译安装 #cd /usr/local/src/ #wget http://mysql.byungsoo.net/Downloads/MySQL-5.1/mysql-5.1.38.tar.gz #tar –xzvf mysql-5....
    99+
    2015-11-24
    Linux下MySQL安装配置 MySQL配置参数详解
  • spring boot中的properties参数配置详解
    application.propertiesapplication.properties是spring boot默认的配置文件,spring boot默认会在以下两个路径搜索并加载这个文件src\main\resourcessrc\main...
    99+
    2023-05-31
    spring boot properties
  • PostgreSQL配置参数详解和配置错误解决办法(二)
    ./configure编译参数详解: --prefix     指定安装目录。 --bindir     指定可执行程序的目录...
    99+
    2022-10-18
  • MySQL8.0安装配置教程【超级详细图解】
    目录 一、MySQL下载与安装 二、MySQL安装 三、MySQL连接测试 四、配置环境变量 一、MySQL下载与安装 MySQL下载地址 mysql-installer-web-community-8.0.26.0.msi ...
    99+
    2023-09-01
    mysql 数据库
  • Pythonargparse命令参数与config配置参数示例深入详解
    目录argparse 是什么使用argparse的最小使用例子argparse实际工作的用法问题背景解决办法对argparse做不到的事情的补充问题背景解决办法教学说明流程如下总结入...
    99+
    2023-03-01
    Python argparse命令参数 Python config配置参数
  • oracle dataguard主备库参数文件配置详解
    主库参数详解: 保持同一个Data Guard中所有的DB_NAME相同DB_NAME=ora11g  #为一个数据库指定一个唯一的名称,该参数一经指定就不会发生改动除非DBA...
    99+
    2022-10-18
  • MySQL自增锁模式innodb_autoinc_lock_mode参数详解
    innodb_autoinc_lock_mode这个参数控制着在向有auto_increment 列的表插入数据时,相关锁的行为; 通过对它的设置可以达到性能与安全(主从的数据一致性)的平衡 【0】我...
    99+
    2022-10-18
  • Vue参数的增删改实例详解
    目录展示参数明细展示参数明细功能实现删除参数明细功能实现静态属性的更新总结展示参数明细 elementui Tag标签 <el-table-column label="明细...
    99+
    2022-11-13
  • 阿里云资源服务器配置参数详解
    阿里云资源服务器是一种基于阿里云的云计算服务,提供强大的计算能力、稳定的安全性能和便捷的管理界面。本文将详细介绍阿里云资源服务器配置参数,帮助用户更好地理解和使用这款服务。 一、阿里云资源服务器配置参数CPU:阿里云资源服务器提供了多种CP...
    99+
    2023-10-30
    阿里 详解 服务器配置
  • 阿里云服务器基本配置参数详解
    阿里云服务器是一种高可用、弹性伸缩的计算服务,可以满足不同用户的需求。本文将详细介绍阿里云服务器的基本配置参数,帮助用户更好地使用阿里云服务器。 阿里云服务器的基本配置参数主要包括以下几个方面:计算资源:阿里云服务器提供多种计算资源,包括C...
    99+
    2023-11-22
    阿里 详解 基本配置
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作