欢迎来到258分享网,纯净的网络源码分享基地!

258资源分享网

全部作品
全部作品
网站源码
微信源码
素材特效
源码插件
视频教程
建站学院
热门搜索: 织梦  农业种植  农业  安全设置  官方
258资源分享 > 建站学院 > MYSQL教程 > MySQL优化方案参考,有助于进行系统性的优化方案选择

推荐下载

HTML5响应式自适应网咯设计

2020-05-12   浏览:789

HTML5自适应律师工作室类网

2020-04-04   浏览:654

高端HTML5响应式企业通用网

2020-05-06   浏览:560

html5响应式外贸网站英文版

2020-05-08   浏览:545

HTML5影视传媒文化公司类网

2020-05-12   浏览:543

MySQL优化方案参考,有助于进行系统性的优化方案选择

发布时间:2021-04-24  

今天小编就为大家分享一篇关于MySQL优化方案参考,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧

MySQL优化方案参考,有助于进行系统性的优化方案选择

优化可能带来的问题

 

优化不总是对一个单纯的环境进行,还很可能是一个复杂的已投产的系统。

 

优化手段本来就有很大的风险,只不过你没能力意识到和预见到!

 

任何的技术可以解决一个问题,但必然存在带来一个问题的风险!

 

对于优化来说解决问题而带来的问题,控制在可接受的范围内才是有成果。

 

保持现状或出现更差的情况都是失败!

 

本文整理了一些MySQL的通用优化方法,做个简单的总结分享,旨在帮助那些没有专职MySQL DBA的企业做好基本的优化工作,至于具体的SQL优化,大部分通过加适当的索引即可达到效果,更复杂的就需要具体分析了。

 

1、硬件层相关优化

 

1.1、CPU相关

 

在服务器的BIOS设置中,可调整下面的几个配置,目的是发挥CPU最大性能,或者避免经典的NUMA问题:

 

1、选择Performance Per Watt Optimized(DAPC)模式,发挥CPU最大性能,跑DB这种通常需要高运算量的服务就不要考虑节电了;

 

2、关闭C1E和C States等选项,目的也是为了提升CPU效率;

 

3、Memory Frequency(内存频率)选择Maximum Performance(最佳性能);

 

4、内存设置菜单中,启用Node Interleaving,避免NUMA问题;

 

1.2、磁盘I/O相关

 

下面几个是按照IOPS性能提升的幅度排序,对于磁盘I/O可优化的一些措施:

 

1、使用SSD或者PCIe SSD设备,至少获得数百倍甚至万倍的IOPS提升;

 

2、购置阵列卡同时配备CACHE及BBU模块,可明显提升IOPS(主要是指机械盘,SSD或PCIe SSD除外。同时需要定期检查CACHE及BBU模块的健康状况,确保意外时不至于丢失数据);

 

3、有阵列卡时,设置阵列写策略为WB,甚至FORCE WB(若有双电保护,或对数据安全性要求不是特别高的话),严禁使用WT策略。并且闭阵列预读策略,基本上是鸡肋,用处不大;

 

4、尽可能选用RAID-10,而非RAID-5;

 

5、使用机械盘的话,尽可能选择高转速的,例如选用15KRPM,而不是7.2KRPM的盘,不差几个钱的;

 

2、系统层相关优化

 

2.1、文件系统层优化

 

在文件系统层,下面几个措施可明显提升IOPS性能:

 

1、使用deadline/noop这两种I/O调度器,千万别用cfq(它不适合跑DB类服务);

 

2、使用xfs文件系统,千万别用ext3;ext4勉强可用,但业务量很大的话,则一定要用xfs;

 

3、文件系统mount参数中增加:noatime, nodiratime, nobarrier几个选项(nobarrier是xfs文件系统特有的);

 

2.2、其他内核参数优化

 

针对关键内核参数设定合适的值,目的是为了减少swap的倾向,并且让内存和磁盘I/O不会出现大幅波动,导致瞬间波峰负载:

 

1、将vm.swappiness设置为5-10左右即可,甚至设置为0(RHEL 7以上则慎重设置为0,除非你允许OOM kill发生),以降低使用SWAP的机会;

 

2、将vm.dirty_background_ratio设置为5-10,将vm.dirty_ratio设置为它的两倍左右,以确保能持续将脏数据刷新到磁盘,避免瞬间I/O写,产生严重等待(和MySQL中的innodb_max_dirty_pages_pct类似);

 

3、将net.ipv4.tcp_tw_recycle、net.ipv4.tcp_tw_reuse都设置为1,减少TIME_WAIT,提高TCP效率;

 

4、至于网传的read_ahead_kb、nr_requests这两个参数,我经过测试后,发现对读写混合为主的OLTP环境影响并不大(应该是对读敏感的场景更有效果),不过没准是我测试方法有问题,可自行斟酌是否调整;

 

3、MySQL层相关优化

 

3.1、关于版本选择

 

官方版本我们称为ORACLE MySQL,这个没什么好说的,相信绝大多数人会选择它。

 

我个人强烈建议选择Percona分支版本,它是一个相对比较成熟的、优秀的MySQL分支版本,在性能提升、可靠性、管理型方面做了不少改善。它和官方ORACLE MySQL版本基本完全兼容,并且性能大约有20%以上的提升,因此我优先推荐它,我自己也从2008年一直以它为主。

 

本文标签

: