暂无图片
暂无图片
暂无图片
暂无图片
暂无图片
MySQL8新配置参数.pdf
198
5页
0次
2023-11-18
25墨值下载
MySQL8.0新增配置参数详解-王伟-51CTO博客
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.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
of 5
25墨值下载
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文档的来源(墨天轮),文档链接,文档作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论

关注
最新上传
暂无内容,敬请期待...
下载排行榜
Top250 周榜 月榜