选择Percona Server、MariaDB还是MYSQL|学习笔记

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 RDS MySQL,高可用系列 2核4GB
简介: 快速学习选择Percona Server、MariaDB还是MYSQL

开发者学堂课程【MySQL企业常见架构与调优经验分享 :选择Percona Server、MariaDB还是MYSQL】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/383/detail/4812


选择 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 Serve r由领先的 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 问题。

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
6天前
|
关系型数据库 MySQL 网络安全
5-10Can't connect to MySQL server on 'sh-cynosl-grp-fcs50xoa.sql.tencentcdb.com' (110)")
5-10Can't connect to MySQL server on 'sh-cynosl-grp-fcs50xoa.sql.tencentcdb.com' (110)")
|
7天前
|
关系型数据库 MySQL 数据库
docker启动mysql多实例连接报错Can’t connect to local MySQL server through socket ‘/var/run/mysqld/mysqld.sock’
docker启动mysql多实例连接报错Can’t connect to local MySQL server through socket ‘/var/run/mysqld/mysqld.sock’
29 0
|
2月前
|
SQL druid Java
Java数据库部分(MySQL+JDBC)(二、JDBC超详细学习笔记)(下)
Java数据库部分(MySQL+JDBC)(二、JDBC超详细学习笔记)
49 3
Java数据库部分(MySQL+JDBC)(二、JDBC超详细学习笔记)(下)
|
2月前
|
SQL Java 关系型数据库
Java数据库部分(MySQL+JDBC)(二、JDBC超详细学习笔记)(上)
Java数据库部分(MySQL+JDBC)(二、JDBC超详细学习笔记)
67 3
Java数据库部分(MySQL+JDBC)(二、JDBC超详细学习笔记)(上)
|
2月前
|
SQL 关系型数据库 MySQL
MySQL学习笔记
这篇文章是一份关于MySQL数据库操作的学习笔记,涵盖了数据库的终端操作、数据类型、建表约束、事务处理以及SQL的连接查询等基础知识点。
|
2月前
|
数据采集 关系型数据库 MySQL
大数据-业务数据采集-FlinkCDC The MySQL server is not configured to use a ROW binlog_format
大数据-业务数据采集-FlinkCDC The MySQL server is not configured to use a ROW binlog_format
34 1
|
2月前
|
SQL 关系型数据库 MySQL
Java数据库部分(MySQL+JDBC)(一、MySQL超详细学习笔记)(下)
Java数据库部分(MySQL+JDBC)(一、MySQL超详细学习笔记)
31 6
|
2月前
|
存储 关系型数据库 MySQL
Java数据库部分(MySQL+JDBC)(一、MySQL超详细学习笔记)(上)
Java数据库部分(MySQL+JDBC)(一、MySQL超详细学习笔记)
32 4
|
2月前
|
SQL 关系型数据库 MySQL
Java数据库部分(MySQL+JDBC)(一、MySQL超详细学习笔记)(中)
Java数据库部分(MySQL+JDBC)(一、MySQL超详细学习笔记)
25 3
|
3月前
|
SQL Oracle 关系型数据库
MySQL、SQL Server和Oracle数据库安装部署教程
数据库的安装部署教程因不同的数据库管理系统(DBMS)而异,以下将以MySQL、SQL Server和Oracle为例,分别概述其安装部署的基本步骤。请注意,由于软件版本和操作系统的不同,具体步骤可能会有所变化。
165 3
下一篇
无影云桌面