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

简介: 快速学习选择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 
相关文章
|
3月前
|
关系型数据库 MySQL 数据库
阿里云数据库RDS费用价格:MySQL、SQL Server、PostgreSQL和MariaDB引擎收费标准
阿里云RDS数据库支持MySQL、SQL Server、PostgreSQL、MariaDB,多种引擎优惠上线!MySQL倚天版88元/年,SQL Server 2核4G仅299元/年,PostgreSQL 227元/年起。高可用、可弹性伸缩,安全稳定。详情见官网活动页。
783 152
|
3月前
|
关系型数据库 分布式数据库 数据库
阿里云数据库收费价格:MySQL、PostgreSQL、SQL Server和MariaDB引擎费用整理
阿里云数据库提供多种类型,包括关系型与NoSQL,主流如PolarDB、RDS MySQL/PostgreSQL、Redis等。价格低至21元/月起,支持按需付费与优惠套餐,适用于各类应用场景。
|
4月前
|
存储 关系型数据库 MySQL
在CentOS 8.x上安装Percona Xtrabackup工具备份MySQL数据步骤。
以上就是在CentOS8.x上通过Perconaxtabbackup工具对Mysql进行高效率、高可靠性、无锁定影响地实现在线快速全量及增加式数据库资料保存与恢复流程。通过以上流程可以有效地将Mysql相关资料按需求完成定期或不定期地保存与灾难恢复需求。
380 10
|
3月前
|
关系型数据库 MySQL 数据库
阿里云数据库RDS支持MySQL、SQL Server、PostgreSQL和MariaDB引擎
阿里云数据库RDS支持MySQL、SQL Server、PostgreSQL和MariaDB引擎,提供高性价比、稳定安全的云数据库服务,适用于多种行业与业务场景。
|
11月前
|
存储 关系型数据库 MySQL
MySQL索引学习笔记
本文深入探讨了MySQL数据库中慢查询分析的关键概念和技术手段。
726 81
|
存储 SQL 关系型数据库
Mysql学习笔记(二):数据库命令行代码总结
这篇文章是关于MySQL数据库命令行操作的总结,包括登录、退出、查看时间与版本、数据库和数据表的基本操作(如创建、删除、查看)、数据的增删改查等。它还涉及了如何通过SQL语句进行条件查询、模糊查询、范围查询和限制查询,以及如何进行表结构的修改。这些内容对于初学者来说非常实用,是学习MySQL数据库管理的基础。
357 6
|
SQL 关系型数据库 MySQL
Mysql学习笔记(三):fetchone(), fetchmany(), fetchall()详细总结
MySQL中用于数据检索的`fetchone()`, `fetchmany()`, `fetchall()`函数的功能、SQL语句示例和应用场景。
404 3
Mysql学习笔记(三):fetchone(), fetchmany(), fetchall()详细总结
|
SQL Ubuntu 关系型数据库
Mysql学习笔记(一):数据库详细介绍以及Navicat简单使用
本文为MySQL学习笔记,介绍了数据库的基本概念,包括行、列、主键等,并解释了C/S和B/S架构以及SQL语言的分类。接着,指导如何在Windows和Ubuntu系统上安装MySQL,并提供了启动、停止和重启服务的命令。文章还涵盖了Navicat的使用,包括安装、登录和新建表格等步骤。最后,介绍了MySQL中的数据类型和字段约束,如主键、外键、非空和唯一等。
243 3
Mysql学习笔记(一):数据库详细介绍以及Navicat简单使用
|
监控 关系型数据库 MySQL
zabbix agent集成percona监控MySQL的插件实战案例
这篇文章是关于如何使用Percona监控插件集成Zabbix agent来监控MySQL的实战案例。
257 2
zabbix agent集成percona监控MySQL的插件实战案例
|
关系型数据库 MySQL 数据库
Mysql学习笔记(四):Python与Mysql交互--实现增删改查
如何使用Python与MySQL数据库进行交互,实现增删改查等基本操作的教程。
201 1

推荐镜像

更多