老男孩MysqlDBA专家班

MySql 数据库配置优化

  • 表示缓冲池字节大小。
    推荐值为物理内存的50%~80%。
    innodb_buffer_pool_size

  • 用来控制redo log刷新到磁盘的策略。 innodb_flush_log_at_trx_commit=1

  • 每提交1次事务同步写到磁盘中,可以设置为n。 sync_binlog=1

  • 脏页占innodb_buffer_pool_size的比例时,触发刷脏页到磁盘。 推荐值为25%~50%。 innodb_max_dirty_pages_pct=30

  • 后台进程最大IO性能指标。
    默认200,如果SSD,调整为5000~20000
    innodb_io_capacity=200

  • 指定innodb共享表空间文件的大小。 innodb_data_file_path

  • https://pan.baidu.com/s/1yRDUCayCbwq-URuWYhPFjw?pwd=shvz

  • 慢查询日志的阈值设置,单位秒。 long_qurey_time=0.3

  • mysql复制的形式,row为MySQL8.0的默认形式。 binlog_format=row

  • 调高该参数则应降低interactive_timeout、wait_timeout的值。 max_connections=200

  • 过大,实例恢复时间长;过小,造成日志切换频繁。 innodb_log_file_size

  • 全量日志建议关闭。
    默认关闭。
    general_log=0

内核相关参数(/etc/sysctl.conf)

以下参数可以直接放到sysctl.conf文件的末尾。

1.增加监听队列上限:

net.core.somaxconn = 65535
net.core.netdev_max_backlog = 65535
net.ipv4.tcp_max_syn_backlog = 65535

2.加快TCP连接的回收:

net.ipv4.tcp_fin_timeout = 10
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1

3.TCP连接接收和发送缓冲区大小的默认值和最大值:

net.core.wmem_default = 87380
net.core.wmem_max = 16777216
net.core.rmem_default = 87380
net.core.rmem_max = 16777216

4.减少失效连接所占用的TCP资源的数量,加快资源回收的效率:

net.ipv4.tcp_keepalive_time = 120
net.ipv4.tcp_keepalive_intvl = 30
net.ipv4.tcp_keepalive_probes = 3


作者:Sufho
链接:https://juejin.cn/post/6844904114250334215
来源:稀土掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值