阿里云
为了无法计算的价值
打开APP
阿里云APP内打开
学习中心> MySQL企业常见架构与调优经验分享> 正文

MySQL企业常见架构与调优经验分享

7课时 |
12228人已学 |
免费
课程介绍

从多个方面深入介绍MYSQL的使用技巧和调优策略,最大限度发挥MySQL的性能优势,对MySQL DBA或者运维工作者有很大帮助,每个知识点都是从实战角度出发,以企业应用环境为主线进行深入介绍。

选择Percona Server、MariaDB还是MYSQL

内容介绍:

一、选择Percona Server、MariaDB还是MYsQL

二、常用的MYsQL调优策略

一、选择Percona Server、MariaDB还是MYsQL

主要内容是MYSQL在企业里边常见的应用架构与调优方法,重点为思路介绍。

以下分四个部分进行介绍,第一部分,重点介绍的各个发行版本和如何选择MYSQL版本;第二部分,介绍MYSQL的调优策略;

同时,在前两个部分中一同介绍系统网络调优和MYSQL自身参数的调优;第三部分,重点介绍企业里MYSQL常见的应用架构,深入的探讨各种架构的优缺点;第四部分,讲述MYSQL在企业里经典的应用架构。

首先,介绍第一部分的内容。

在MYSQL5版本的选择之前,介绍下最常见的3个MYSQL版本。第一个版本Percona Server,它其实是一个领先的MYSQL咨询公司发布的第一个开源版本。第二个版本是MarriaDB,是MYSQL最早的创始人重新又基于MYSQL的建立的版本。第三个,是最经常用的官方版本,是Oracle的一个发行版本。

三个版本中可能用的比较多的是官方发行的MYSQL版本,但是该版本的稳定性和性能却不一定是最好的,所以下面结合多种情况分别探讨如何该选择MYSQL版本。

1、Mysql三种存储引擎

在探讨选择版本之前,首先了解一下关于MYSQL的常见存储引擎。MYSQL的存储引擎分为三种,第一种最常见的MyISAM引擎,是最原始最古老的一种存储引擎。

第二种是目前比较流行的lnnoDB,作为一个官方发行版本在之前MYSQL.5版本之前,MYSQL的默认引擎都是MyISAM。从MYSQLS.5开始,MySQL将默认存储引擎自动从MyISAM更改为InnoDB。

这两种储存引擎有什么不同呢?下面做个简单的介绍。

MYISAM是一个传统存储引擎,它的最大的缺点就是不支持事务。事务是与业务相关的操作,比如说数据在听读写的时候会有一个锁,这个锁必须等另外一个锁或者另外一个操作完成之后才能释放,与锁相关的这个事务,传统的MYISAM是不具备的。

事务这个功能它带来的好处是在MYSQL如果出现问题或出现故障的时候,它可以通过事务的记录做一个恢复。

传统的MYISAM是没有这些记录的,所以如果MYISAM发生故障或者突然间宕机,导致MYSQL出现故障,恢复的难度是比较大的或者是没有办法恢复的,这是它的一个最大的缺点,但它的好处是因为他本身在读写性能方面会稍微好一点。

InnonDB支持锁机制,带来的好处是它在操作这个信息时会通过把信息记录在log文件里边,有了log日志文件的记录,数据库在崩溃的时候,可以做相关的回滚操作,便能从这个日志文件里面把数据恢复出来。对它的安全性方面是一个很好的保证。随着InnonDB的发展,现在在读写性能方面已经做的非常好。

因此也建议如果用的是这个5版本可以把存储引擎改成InnonDB,现在百分之九十九的业务环境InnonDB都是可以满足的,从这个运维的角度来说如果使用会在后续的维护中有很多好处。在故障恢复、份等等各个方面,都是有很大的好处的,所以建议把自己MYSQL数据库的默认引擎改为InnonDB。

第三个引擎是XtraDB是InnoDB存储引擎的增强版本,是在它的基础之上做一些改进,主要的设计思路是可以更好的去利用计算机的硬件资源提高MYSQL的存储性能,同时还包含了在高可用环境之下的一些新特性,XtraDB的性能也是非常的出色,也是支持事务的,因为它是由InnonDB发展过来的,现在也是已经默认集成到了某些事务发生版本里。

2、PerconaServer分支

Percona Server由领先的MysQL咨询公司 Percona发布。这一个版本发生的周期是比较久的,它其实是一款独立的数据库产品,它是在官方产品MYSQL基础之上,做了些性能的改进,其可以完全与MySQL兼容,可以在不更改代码的情况了下将存储引擎更换成xtraDB。是最接近官方MySQlEnterprise发行版的版本。

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

3、MariaDB

MariaDB由 MysQL的创始人开发,MariaDB的目的是完全兼容 MySQL,包括API和命令行,使之能轻松成为MySOL的代替品。安装完成后在初始化的工作时,MariaDB专门有一个脚本可以直接对初始化数据库进行安全方面的操作,比如是否要允许root远程登录,是否要设置密码是否要关闭太词库等等,这些策略都是通过一个初始化脚本就可以完成的,提高了安全性。

MariaDB 提供了MysQL提供的标准存储引擎,即 MylSAM和InnoDB,10.0.9 版起使用XtraDB(名称代号为Aria)来代替MysQL的InnoDB。

4.官方版本

随着各个开源版本的使用,后续的发展趋势来说官方版本可能会被第三方的一些发行版本取代。比如说perconaserver和mariaDB都有可能取代。

官方版本现在在性能方面考虑,其实更多的是在企业版里面增加一些很新的功能,官方的开源版本其实叫MYSQL社区版,虽然是开源免费版本,但无论是他的功能方面还是性能方面都有很多欠缺的地方。

5.如何选择

从多年的使用经验和结合目前业务形式来对比,会推荐percona做一个首选的发行版本,这个版本不管是在功能上还是在性能上都是非常高的 ,特别是它独创的XtraDB存储引擎,是完全可以在企业生产环境里面去使用,该版本已经推出了多年,使用上得到了验证。

接下来推荐MariaDB,MariaDB未来的发展趋势是很好的,因为它包含了很多第三方的扩展功能,在功能上会更全性能上更好。但为什么不是首推呢?

是因为它的发展才短短几年,它也是在MYSQL源码上改动最大,为了增加新的功能改进了很多源码,通过这块来看成熟度目前还不够高。虽然企业环境里也有去用,但是它的用量还不是很多,未来它会发生哪些问题呢也是不够清楚的,所以作为第二推荐。

当然最后一个如果不想去冒险,觉得目前这个版本完全能够满足我,对数据库要求也不是很高的,用官方版本也是可以的,具体选什么版本应该跟自己的业务需求相结合的。如果自己业务对MYSQL本身压力非常大就选相对比较稳定的版本。

二、常用的MYsQL调优策略

关于策略可能没有接触这方面知识的同学可能觉得它太偏太远。但是这些经验都是根据多年的线上使用经验和在工作环境中遇到的一些具体情况得到的,这一总结完全是适用线上MYSQL使用的,可以在百分之九十的环境里面去使用,如果业务本身有很大特殊性,就可以仅仅做一个参考。

1、硬件层相关优化

修改服务器BIOS设置

首先从硬件层面入手,如果说我们的服务器是作为MYSQL数据库服务器去使用,那么需要让CPU和内存发挥一个最大的性能,在一般服务器里面都是有对CPU性能使用的一个选项。

默认情况下不是CPU的最大性能,可以去找相关的对CPU或者对内存的配置。选择Performance Per Watt Optimized(DAPC)模式,发挥CPU最大性能,这个模式的好处是充分发挥CPU使用资源。

内存方面有关于内存频率设置的选项,默认是一个很中庸的配置,为了保证内存也是最大化利用可以再修改Memory Frequency(内存频率)选择 MaximumPerformance(最佳性能)。

关于内存利用在设置菜单中启用Node Interle aving,避免NUMA问题。

我的学习进度
请登录后查看您的学习进度!
立即登录
本课程相关云产品