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

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,高可用系列 2核4GB
云数据库 RDS PostgreSQL,高可用系列 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 问题。

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://www.aliyun.com/product/rds/mysql 
相关文章
|
26天前
|
存储 关系型数据库 MySQL
在CentOS 8.x上安装Percona Xtrabackup工具备份MySQL数据步骤。
以上就是在CentOS8.x上通过Perconaxtabbackup工具对Mysql进行高效率、高可靠性、无锁定影响地实现在线快速全量及增加式数据库资料保存与恢复流程。通过以上流程可以有效地将Mysql相关资料按需求完成定期或不定期地保存与灾难恢复需求。
116 10
|
8月前
|
关系型数据库 MySQL 数据库连接
数据库连接工具连接mysql提示:“Host ‘172.23.0.1‘ is not allowed to connect to this MySQL server“
docker-compose部署mysql8服务后,连接时提示不允许连接问题解决
|
9月前
|
安全 关系型数据库 MySQL
Windows Server 安装 MySQL 8.0 详细指南
安装 MySQL 需要谨慎,特别注意安全配置和权限管理。根据实际业务需求调整配置,确保数据库的性能和安全。
909 9
|
监控 关系型数据库 MySQL
zabbix agent集成percona监控MySQL的插件实战案例
这篇文章是关于如何使用Percona监控插件集成Zabbix agent来监控MySQL的实战案例。
221 2
zabbix agent集成percona监控MySQL的插件实战案例
|
12月前
|
关系型数据库 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)")
|
关系型数据库 Java MySQL
Linux安装JDK1.8 & tomcat & MariaDB(MySQL删减版)
本教程提供了在Linux环境下安装JDK1.8、Tomcat和MariaDB的详细步骤。这三个组件的组合为Java Web开发和部署提供了一个强大的基础。通过遵循这些简单的指导步骤,您可以轻松建立起一个稳定、高效的开发和部署环境。希望这个指导对您的开发工作有所帮助。
403 8
|
12月前
|
关系型数据库 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’
1069 0
|
SQL 关系型数据库 MySQL
如何在 MySQL 或 MariaDB 中导入和导出数据库
如何在 MySQL 或 MariaDB 中导入和导出数据库
1024 0
|
3月前
|
人工智能 运维 关系型数据库
数据库运维:mysql 数据库迁移方法-mysqldump
本文介绍了MySQL数据库迁移的方法与技巧,重点探讨了数据量大小对迁移方式的影响。对于10GB以下的小型数据库,推荐使用mysqldump进行逻辑导出和source导入;10GB以上可考虑mydumper与myloader工具;100GB以上则建议物理迁移。文中还提供了统计数据库及表空间大小的SQL语句,并讲解了如何使用mysqldump导出存储过程、函数和数据结构。通过结合实际应用场景选择合适的工具与方法,可实现高效的数据迁移。
655 1
|
4月前
|
负载均衡 算法 关系型数据库
大数据大厂之MySQL数据库课程设计:揭秘MySQL集群架构负载均衡核心算法:从理论到Java代码实战,让你的数据库性能飙升!
本文聚焦 MySQL 集群架构中的负载均衡算法,阐述其重要性。详细介绍轮询、加权轮询、最少连接、加权最少连接、随机、源地址哈希等常用算法,分析各自优缺点及适用场景。并提供 Java 语言代码实现示例,助力直观理解。文章结构清晰,语言通俗易懂,对理解和应用负载均衡算法具有实用价值和参考价值。
大数据大厂之MySQL数据库课程设计:揭秘MySQL集群架构负载均衡核心算法:从理论到Java代码实战,让你的数据库性能飙升!

推荐镜像

更多