常用MySQ调优策略及相关分享:学习随记

版权声明:原创文章属怡泽堂堂主所属,请注明出处,如有商业合作,可联系 https://blog.csdn.net/weixin_37896608/article/details/90059341

最高¥2000云产品通用代金券,访问链接注册、实名认证后可领取
https://promotion.aliyun.com/ntms/yunparter/invite.html?userCode=dansrwg4

MySQL作为开源关系型数据库的一种,使用范围比较广,笔者也随着版本的不断更新接触了从MySQL5.0到MySQL5.7的诸多版本,源代码研究不多,主要是应用层次,而每家公司或每个项目针对不同客户不同应用场景的实际软硬件规格的不同,造成我们需要在官方版本默认参数的情况下,针对各自的特定情况进行调优,针对实践或学习过程中的调优策略进行整理和分享:

从以下方面简单说明:
一、MySQL版本及存储引擎

1、三种存储引擎

MySQL提供了两种存储引擎,MyISAM和InnoDB,MySQL4和MySQL5使用默认的MyISAM存储引擎,从MySQL5.5开始,MySQL将存储引擎从MyISAM更改为了InnoDB,MyISAM没有提供事务支持,而InnoDB提供了事务支持。

XtraDB是InnoDB存储引擎的增强版本,被设计用来更改的使用更新计算机硬件系统的性能,同时还包含有一些在高性能环境下的新特性。

2、Percona Server分支
可能有些人是首次听说,但数据库经验丰富的对这个版本应该都不陌生。Percona Server是由领先的MySQL咨询公司Percona 发布。是一款独立的数据库产品,其可以完全与MySQL兼容,可以在不更改代码的情况下降存储引擎更换成XtraDB,是最接近官方MySQL发行版的版本

Percona Server提供了高性能XtraDB引擎,还提供PXC高可用解决方案,并且附带了percona toolkit等DBA管理工具箱。

3、MariaDB分支

MariaDB由MySQL的创始人开发,MariaDB的目的是完全兼容MySQL,包括API和命令行,使之能轻松成为MySQL的代替品。

MariaDB提供了MySQL提供的标准存储引擎,即MyISAM和InnoDB,10.0.9版本起使用XtraDB来代替MySQL的InnoDB

4、如何选择:
Percona Server和MariaDB两个都是开源的版本,而MySQL官方版本当前是有Oracle负责维护和升级,在此之前是由Sun公司购买过来的,目前来看更新和迭代以及新特性的研发速度远低于其他版本,且后续存在从开源转为闭源的可能,这也是为什么国内的很多云公司或互联网公司即使用了官方版本,也会做自研改造或重构的其中原因之一。

另外根据市场反馈和一些资深DBA的使用经验,以及各个版本之间的性能比对,建议首选Percona Server分支,其次是MariaDB,如果不想冒任何风险,那就选择MySQL的官方版本。后续即使有一天收费或闭源了,相信也可以平滑迁移至其他版本。

二、MySQL的外部调优

1、硬件层相关优化

修改服务器BIOS设置
选择Performance Per WattOptimalzed(DAPC)模式,发挥CPU最大性能
内存频率,选择Maximum Performance(最佳性能)
内存设置菜单中,启用Node Interleaving ,避免NUMA问题

2、磁盘I/O相关
使用SSD硬盘
如果是磁盘阵列存储,建议阵列卡同时配备CACHE及BBU模块,可明显提升IOPS
RAID级别尽量选择RAID10,而不是RAID5

3、文件系统层优化
使用deadline/noop,这两种I/O调度器,千万别用CFQ
使用XFS文件系统,千万别用EXT3,EXT4勉强可用,但业务量很大的话,则一定要用XFS
文件系统mount参数中增加:noatime、nodiratime、nobarrier几个选项(nobarrier是xfs文件系统特有的)

4、内存参数优化
修改vm.swappines参数,降低swap使用率。RHEL7/Centos7以上则慎重设置为0,可能发生OOM
调整vm.dirty_backgroud_ratio、vm.dirty_ratio内核参数,以确保能持续将脏数据刷新到磁盘,避免瞬间I/O写,产生等待。
调整net.ipv4.tcp_tw_recycle、net.ipv4.tdp_tw_reuse都设置为1,减少TIME_WAIT,提高TCP效率。

三、MySQL参数优化建议

网上搜索下会发现很多关于MySQL各方面应用下的参数优化,下面简单罗列几个:

1、Mysql性能优化、Mysql参数优化、Mysql配置优化
https://www.2cto.com/database/201711/695306.html

2、mysql参数优化(腾讯云社区)
https://cloud.tencent.com/developer/information/mysql参数优化

3、MySQL性能优化之参数配置
https://www.cnblogs.com/angryprogrammer/p/6667741.html

4、MySQL核心参数优化
https://www.cnblogs.com/jenvid/p/8994831.html

5、MySQL 高并发配置优化
https://blog.csdn.net/cuker919/article/details/80610314

6、MYSQL参数优化
https://blog.51cto.com/13545261/2146986

7、mysql参数优化(阿里云帮助文档)
https://help.aliyun.com/wordpower/424749-1.html

以上为寻找到的网上链接,另外关于常用架构主从复制下的调优可以观看下方的视频链接,建议先领代金券再访问视频,会有很多免费学习资源

最高¥2000云产品通用代金券,访问链接注册、实名认证后可领取
https://promotion.aliyun.com/ntms/yunparter/invite.html?userCode=dansrwg4

相关学习视频访问链接:https://edu.aliyun.com/lesson_48_697?spm=5176.8764728.0.0.213a4fa0xUYl2m#_697

猜你喜欢

转载自blog.csdn.net/weixin_37896608/article/details/90059341