mysql 自适应字段宽度_mysql8.0自适应参数

mysql8.0之后推出了服务器资源自适应参数innodb_dedicated_server,可以根据操作系统内存资源自动设置一部分参数,避免手动设置不合理的烦恼。

参考官方文档:

https://dev.mysql.com/doc/refman/8.0/en/innodb-dedicated-server.html

官方建议仅在专用服务器上设置innodb_dedicated_server=ON,如果你的服务器上除了MySQL服务还部署了其他应用,建议不要开启该参数

设置innodb_dedicated_server=ON会自动配置以下参数:innodb_buffer_pool_size

innodb_log_file_size

innodb_log_files_in_group (as of MySQL 8.0.14)

innodb_flush_method

注:如果设置了innodb_dedicated_server=ON的同时又显式设置了innodb_buffer_pool_size,innodb_log_file_size,innodb_log_files_in_group,innodb_flush_method,则会以显式设置的参数值为准。

innodb_buffer_pool_size自动设置规则:Detected Server MemoryBuffer Pool Size

Less than 1GB128MiB (the default value)

1GB to 4GBdetected server memory* 0.5

Greater than 4GBdetected server memory* 0.75

所以,在一个4C8G的服务器上,innodb_buffer_pool_size分配的值为6G

93b1214946338e9ae0c44b5943b4eda1.png

innodb_log_file_size自动设置规则:Buffer Pool SizeLog File Size

Less than 8GB512MiB

8GB to 128GB1024MiB

Greater than 128GB2048MiB

所以,在一个4C8G的服务器上,一个日志文件的大小为512M

f49f87431826583a1a0a7e21ec73836b.png

innodb_log_files_in_group自动设置规则:Buffer Pool SizeNumber of Log Files

Less than 8GBROUND(buffer pool size)

8GB to 128GBROUND(buffer pool size* 0.75)

Greater than 128GB64

所以,在一台4C8G的服务器上,日志文件数为6,该参数8.0.14之后才加入自动配置:

34318aa0e659e058159afb059b220eab.png

innodb_flush_method自动配置规则:

“The flush method is set to O_DIRECT_NO_FSYNC when innodb_dedicated_server is enabled”https://dev.mysql.com/doc/refman/8.0/en/innodb-dedicated-server.html

所以只要开启了innodb_dedicated_server,innodb_flush_method=O_DIRECT_NO_FSYNC

99760f544cb1f0841f8b149d20571f6b.png

这一步其实是有一定风险,我们知道一般设置的innodb_flush_method=O_DIRECT,意味着打开文件(数据文件,redo)时使用的是O_DIRECT方式,写文件时,则会写入文件系统buffer,并调用fsync()刷盘。设置innodb_flush_method=O_DIRECT_NO_FSYNC,则写入文件系统buffer后,跳过fsync的调用。官方建议如果使用外部存储,改用O_DIRECT。保险的方式是开启innodb_dedicated_server的同时显式指定innodb_flush_method=O_DIRECT

目前来看自适应功能可自动设置的参数还比较少,后续随着版本迭代,应该会引入更多参数~~~

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值