最高¥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

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

  1. JVM面试问题系列:JVM 配置常用参数和常用 GC 调优策略

    JVM 配置常用参数 堆参数 回收器参数 如上表所示,目前主要有串行.并行和并发三种,对于大内存的应用而言,串行的性能太低,因此使用到的主要是并行和并发两种.并行和并发 GC 的策略通过 UsePar ...

  2. Java常见面试题:常用 GC 调优策略有哪些?

    常用 GC 调优策略有哪些? GC 调优原则: GC 调优目的: GC 调优策略: GC 调优原则 在调优之前,我们需要记住下面的原则: 多数的 Java 应用不需要在服务器上进行 GC 优化: 多数 ...

  3. Rocksdb 的一些参数调优策略

    文章目录 写性能优化 CF write buffer size DB write buffer size 读性能优化 block cache bloom filter Compression 压缩 C ...

  4. Python常用6个技术网站汇总分享!

    Python是一门面向对象的编程语言,它具有丰富和强大的库,能够把用其他语言编写的各种模块轻松地联结在一起,因此也常被称为"胶水语言".Python技术会随着互联网的不断发展一直迭 ...

  5. Alibaba Cloud Linux 技术图谱首发,分享学习感言得大奖!

    简介:作为开发者,你对Linux的了解有多少呢?到底要学到什么程度,才能被判定是"精通"呢?如果小白想要入手Linux,该从哪里学起呢? 这时你需要一条有效的学习路径,能囊括详细的 ...

  6. 十八般武艺玩转GaussDB(DWS)性能调优:总体调优策略

    摘要: 性能调优是应用迁移或开发过程中的关键步骤,同时也在整个项目实施过程中占据很大的份量,本篇主要介绍数据库级别的性能调优思路和总体策略. 性能调优是应用迁移或开发过程中的关键步骤,同时也在整个项目 ...

  7. 整理了 25 个前端相关的学习网站和一些靠谱的小工具,都来看看吧

    给大家整理了 25 个前端相关的学习网站和一些靠谱的小工具,包括一些小游戏.教程.社区网站和博客,以及一些资源网站,希望可以帮助到大家! CSS 相关 1.CSS Battle - 在线比拼 CSS ...

  8. JVM原理和调优的理解和学习

    JVM原理和调优的理解和学习 一.详解JVM内存模型 二.JVM中一次完整的GC流程是怎样的 三.GC垃圾回收的算法有哪些 四.简单说说你了解的类加载器 五.双亲委派机制是什么,有什么好处,怎么打破 ...

  9. 新手炼丹师的调参内经——深度学习涨点技巧总结

    新手炼丹师的调参内经--深度学习涨点技巧总结 训练神经网络的过程就像是一个炼丹的过程,各位炼丹师们除了要设计一个好的丹方(Contribution),配置好的炼丹炉(GPU Server),当然这其中 ...

最新文章

  1. IPC--三---共享内存
  2. 流媒体(视频)服务器调研
  3. redis-4.0.11主从配置初步探究
  4. Linux SPI总线和设备驱动架构
  5. Apache+Mysql+php+ZenTaoPMS安装配置文档
  6. linux下安装mysql_Linux下安装mysql-8.0.20的教程详解
  7. java框架实例---自定义标签实例
  8. 数据库mysql常用操作_mysql数据库常用操作
  9. 批量关停azure vm_如何在Azure中使用Visual Studio和VM数据库
  10. USTC 1119 graph 图的同构
  11. 7c盘满了怎么扩容_C盘爆满怎么办?扩容!
  12. 数学建模优化模型简单例题_数学建模案例分析--最优化方法建模7习题六
  13. Android技术分享| 【你画我猜】Android 快速实现
  14. 模型思维2-如何增加用户对于某个商品的购买意愿?
  15. python 操作excel 表格
  16. 泰坦尼克号数据_数据分析实战3:泰坦尼克号生存分析
  17. 个人微信支付接口在哪申请
  18. c# 微信支付V3商家转账到零钱避坑宝典(一)
  19. 为什么要使用dubbo
  20. 如何计算系统用户并发数,系统最大并发数

热门文章

  1. getting joins
  2. 1266. 访问所有点的最小时间
  3. osquery的认识
  4. Python name ‘basestring‘ is not defined
  5. Java 集合List、Set、HashMap操作三(查找List中的最大最小值、遍历HashTable、List元素替换、List查找位置)
  6. Z-Stack Home Developer's Guide—3. The Home Automation Profile and the Sample Applications中文翻译
  7. 【Linux 线程】常用线程函数复习《三》
  8. DevExpress中获取GridControl排序之后的List
  9. Scrum 冲刺博客集合
  10. C#/SQL 上周本周