文章插图
前言:全文中一共有常用的(事实上你如果花1-2周阅读、理解、自己动手设一下后是需要这么多参数的)76个参数,笔者把近10年里3个亿万级项目的数据库调优用此篇浓缩到了可能读者只需要2周时间就可以掌握,同时我是按照:
- 每一个参数干吗?
- 在某些典型硬件配置下的db上参数该设多少?
- 设会怎么样?
- 不设会怎么样?
- 有什么坑如何填坑?
- 有些参数怎么算、算法又如何
一千个DBA就有一千种配置方式!
大家一定记得不要轻易去看网上,要看只看官网!网上很多博客都是错的,连参数都列错了,5.7很多参数和5.6是完全不一样的 。
可能你从未看到过这样的一篇集中火力式的把mysql参数列了这么全的文章,很有兴曾参与过超3万并发的18~19年的数轮520、618、双11、双12保卫战 。因此这一篇是汇集了最精华和实战的内容把mysql所有的参数列在这边供大家参考 。并且以(64c cpu,128gb内存)的mysql cpu和内存来进行了一轮配置 。而此文的内存相关参数部分可以延展至256gb~512gb 。
另外有一点,建议在mysql的服务器上使用ssd 。除非并发数永远控制在500-1000内那就没必要使用ssd,普通高速磁盘就可以了 。
你会发觉这篇文章是一篇宝藏,这些参数都能够自己动手试验一篇基本在外面是可以吊打mysql面试官了 。
client域:1.character_set_client
推荐设置:
utf8mb4作用:
字符集设定,如果前台有连social mobile Application一类包括wechat,并且允许有使用emoji表情的,请开启成utf8mb4如果不配的后果:
mysql不支持前端app存表情等字符配置实例:
character_set_client=utf8mb41)server-id
mysqld域:
推荐设置:
如果没有做任何主从复制,此值可以不设 。作用:
遇有主从复制,必设该值,每个参与主从复制的mysql实例的server-id不能重复,必须为阿拉伯数字 。如果不配的后果:
如果你用的是主从复制,这个id不设那么整个mysql的主从复制会失几 。配置实例:
server-id=12)port
推荐设置:
3306作用:
mysql实例端口如果不配的后果:
默认为3306配置实例:
port=33063)bind_address
推荐设置:
0.0.0.0作用:
除非有特殊需要,我们会限制只允许mysql实例被某一个ip方问,不支持多个,生产上都为:0.0.0.0然后使用防火墙策略来控制 。如果不配的后果:
默认不允许远程登录配置实例:
bind_address=0.0.0.04)autocommit
推荐设置:
1作用:
生产上开启成1,如果你开启的是0会有一个这样的情况:如果不配的后果:
a运行一条insert语句,并未作commit;b去做查询此时b是查询不到的 。这种操作一般用于在写store procedure时用到 。
如果在系统的my.cnf层面把它设成了0,如果在使用时(99%情况是用的1)时,你想要用root在生产运行时把它设成set autocommit = 1都开启不了 。而如果你在一开始就没它设置成1,那么当碰到某些特殊场景特别是写store procedure时需要把它设成0时,你是可以手动临时把某一个session给开在0的 。配置实例:
autocommit = 15)character_set_server
推荐设置:
utf8mb4作用:
字符集设定,如果前台有连social mobile application一类包括wechat,并且允许有使用emoji表情的,请开启成utf8mb4如果不配的后果:
mysql不支持前端app存表情等字符配置实例:
character_set_server=utf8mb46)skip_name_resolve
推荐设置:
1作用:
生产上建议开启成1,这样mysql server不会对客户端连接使用反向DNS解析,否则客户端连上后有时在遇有生产高速运行时直接timeout,如果设成了1带来的问题就是你不能在mysql中使用主机名来对客户端权限进行划分,而是需要使用ip 。
推荐阅读
- 淘宝店铺好评率如何快速提升 淘宝好评率低于多少有影响
- 高性能网络通信框架 HP-Socket v5.7.2
- 多云架构的3个常见性能挑战和解决方案
- 2分钟学会,提升你气质的20个小习惯
- 淘宝店的物流服务怎么提升 如何提高物流时效
- 淘宝新店铺怎么刷销量 淘宝店铺怎么提升流量和销量
- 在桌面上创建一个关机快捷方式,只需一条命令,关机速度大幅提升
- 月经期间女性能做瑜伽吗?
- 淘宝每天转化率百分之多少最好 淘宝怎么提升转化率
- 淘宝客单价高的产品怎么刷 淘宝货单价怎么提升