AIGC在金融场景是如何落地的? 了解详情
写点什么

MySQL 入门与实践:版本介绍与选型建议

  • 2019-09-25
  • 本文字数:4949 字

    阅读完需:约 16 分钟

MySQL 入门与实践:版本介绍与选型建议

MySQL 属于传统的关系型数据库产品,其开放式的架构使得用户的选择性很强,而且随着技术的逐渐成熟,MySQL 支持的功能也越来越多,性能也在不断地提高,对平台的支持也在增多,此外,社区的开发与维护人数也很多。当下,MySQL 因为其功能稳定、性能卓越,且在遵守 GPL 协议的前提下,可以免费使用与修改,因此深受用户喜爱。


我们知道,关系型数据库的特点是将数据保存在不同的表中,再将这些表放入不同的数据库中,而不是将所有的数据统一放在一个大仓库里,这样的设计加快了 MySQL 的读取速度,而且它的灵活性和可管理性也得到了很大的提高。访问及管理 MySQL 数据库的最常用标准化语言为 SQL—结构化查询语言。SQL 使得对数据库进行存储、更新和存取信息的操作变得更加容易。例如,你能用 SQL 为一个网站检索产品信息及存储用户信息、博文、帖子等,有关 SQL 的知识后文会详细讲解。


自甲骨文公司收购 MySQL 之后,MySQL 在商业数据库与开源数据库领域的市场占有份额都跃居第一,这样的格局引起了部分业内人士的担忧,因为商业数据库的老大有可能将 MySQL 闭源,为了避免 Oracle 将 MySQL 闭源,而无开源的类 MySQL 数据库可用,MySQL 社区采用了分支的方式—MariaDB 数据库就这样诞生了,MariaDB 是一个向后兼容的数据库产品,可能会在以后替代 MySQL,其官方地址为https://mariadb.org/。不过,这里还是建议大家选择更稳定且使用更广泛的 MySQL 数据库,可以先测试 MariaDB 数据库,等使用的人员多一些,社区更活跃后再正式考虑使用也不迟。


毫无疑问,选择 MySQL 数据库已是既成事实,绝大多数使用 Linux 操作系统的互联网网站都在使用 MySQL 作为其后端的数据库存储方式,从大型的 BAT 门户到电商平台、分类门户等无一例外。那么,MySQL 数据库到底有哪些优势和特点,让大家不约而同地选择它呢?


原因可能有以下几点:


  • MySQL 性能卓越,服务稳定,很少出现异常宕机的情况。

  • MySQL 开放源代码且无版权制约,自主性强,使用成本低。

  • MySQL 历史悠久,社区及用户非常活跃,遇到问题,可以寻求帮助。

  • MySQL 软件体积小,安装使用简单,并且易于维护,安装及维护成本低。

  • MySQL 品牌口碑效应好,使得企业无须考虑即可直接用之。

  • LAMP、LNMP、LNMT(tomcat)等流行 Web 架构都含有 MySQL。

  • MySQL 支持多种操作系统,提供了多种 API,支持多种开发语言,特别是对流行的 Java、Python、PHP 等语言都有很好的支持。


官方给出的使用 MySQL 理由可点击此处查看。

MySQL 数据库分类与版本升级

MySQL 数据库的官方网站为http://www.mysql.com,其发布的 MySQL 版本采用双授权政策,和大多数开源产品的路线一样,MySQL 数据库也有社区版和企业版之分,且这两个版本又各自分了四个版本依次发布,这四个版本分别为:Alpha 版、Beta 版、RC 版和 GA 版本。

MySQL 数据库企业版与社区版的区别

1.MySQL 数据库企业版介绍


MySQL 企业版由 MySQL AB 公司内部专门的人员负责开发及维护,但同时也会吸纳社区人员编写的优秀代码及算法,并且由他们严格按照软件测试流程对这些采纳的代码进行测试,确定没有问题之后才会进行发布。简单地说,MySQL 企业版是由 MySQL 公司内部发布的,它参考了社区版的先进代码功能和算法,是 MySQL 公司的赢利产品,需要付费才能使用及提供服务支持,稳定性和可靠性无疑都是最好的,当然了,企业腰包得够鼓才能买得起。据老男孩了解的信息,某知名分类门户网站 2008 年就购买过 MySQL 企业版,价格不比那些闭源的商业数据库便宜,也是大几十万。


2.MySQL 数据库社区版介绍


MySQL 社区版则是由分散在世界各地的 MySQL 开发者、爱好者以及用户参与开发与测试的,包括软件代码的管理、测试工作,也是他们在负责。社区也会设立 BUG 汇报机制,收集用户在使用过程中遇到的 BUG 情况,相比于企业版,社区版的开发及测试环境没有那么严格。


3.MySQL 数据库企业版与社区版的区别


MySQL 是成熟产品,企业版与社区版之间在性能方面相差不大。它们的区别主要集中在以下几个方面:


  • 企业版本组织管理与测试环节控制更严格,稳定性更好。

  • 企业版不遵守 GPL 协议,社区版遵守 GPL 协议,可以免费使用!

  • 使用企业版后可以购买相关的服务,比如,享受 7×24 小时的技术支持以及定时打补丁等服务,但是用户必须为此支付服务费用。社区版的服务质量与时效性等就无法与企业版相比了。

  • 社区版本的维护服务只能靠社区提供,其无法像企业版本那样获得故障及补丁解决服务,但是,使用社区版是完全免费的方式。

MySQL 数据库的四种发布版本介绍

前面已经阐述过,MySQL 的版本发布采用的是双授权政策,即分为社区版和企业版,而这两个版本又各自分为四个版本,依次发布:Alpha 版、Beta 版、RC 版和 GA 版本。


这四种发布版本之间的说明及区别具体如下:


(1)Alpha 版


Alpha 版一般只在开发的公司内部运行,不对外公开。主要是开发者自己对产品进行测试,检查产品是否存在缺陷、错误,验证产品功能与说明书、用户手册是否一致。MySQL 属于开放源代码的开源产品,因此需要世界各地的开发者、爱好者和用户参与软件的开发、测试和手册编写等工作。自然也就必须对外公布此版本的源码和产品了,以方便他人参与开发或测试工作,甚至编写与修改用户手册。


(2)Beta 版


Beta 版一般是完成功能的开发和所有的测试工作之后的产品,不会存在较大的功能或性能上的 BUG,通常会邀请或提供给用户体验与测试,以便更全面地测试软件的不足之处或存在的问题。


(3)RC 版


RC 版属于生产环境发布之前的一个小版本或称候选版,是根据 Beta 版本的测试结果,收集到的 BUG 或缺陷等信息,进行修复和完善之后的一版产品。


(4)GA 版


GA 版是软件产品正式发布的版本,也称生产版本的产品。一般情况下,企业的生产环境都会选择 GA 版本的 MySQL 软件,用于真实的生产环境中。偶尔有个别大型企业会为追求新功能驱动而牺牲稳定性使用其他版本,但只是个例。


既然有四种发布版本,那么如何进行选择呢?


MySQL AB 官方网站会把各种数据库版本都上传到网站,以供不同的用户下载,主要是 MySQL 数据库是属于开放源代码的数据库产品,其鼓励全球的技术爱好者参与研发、测试、文档编写和经验分享,甚至还包括产品的发展规划。对于 Development 版本、Alpha 版本和 Beta 版本,应禁止在生产环境中使用,因为很可能会存在重大的问题或是有些功能未被完全实现。绝大多数情况下,RC 版本也是不允许使用在生产环境中的,毕竟这是一个在 GA 版本之前(也即生产版本发布之前)的小版本。另外,对于 MySQL 数据库 GA 版本,也需要慎重选择,开源社区的产品毕竟不是经过严格的测试工序完成的,是全球开源技术人员自愿完成的,会存在比商业产品稳定性弱的缺陷。更严格的选择后面会有进一步的说明。


国内门户提供的 MySQL 下载地址点击此处

MySQL 数据库软件的命名介绍

MySQL 数据库软件的版本号是由 3 个数字和一个后缀组成。例如,mysql-5.6.40.tar.gz 的版本号,其数字的含义分别如下:


  • 第 1 个数字(5)是主版本号,描述了文件格式。所有版本 5 的发行都有相同的文件格式。

  • 第 2 个数字(6)是发行级别。主版本号和发行级别组合到一起便构成了发行序列号。

  • 第 3 个数字(40)是指在此发行系列的版本号,随每个新分发版而递增。通常你需要已经选择的发行(release)的最新版本(版本)。


每次更新之后,版本字符串的最后一个数字会递增。如果是相对于前一个版本增加了新功能或有微小的不兼容性,那么字符串的第二个数字会递增。如果文件格式改变,那么第一个数字会递增。


至于版本号中的后缀,那是用来显示发行的稳定性级别的,通过这一系列后缀显示如何改进稳定性。可能的后缀有:alpha 版、beta 版、rc 版、没有后缀(稳定版或 GA 版)。

MySQL 产品路线

MySQL 产品路线变更历史背景

早期,MySQL 也是遵循版本号逐渐增加的方式发展,格式形如 mysql-X.XX.XX.tar.gz,例如,老 DBA 都非常熟悉的生产场景下的版本:MySQL 4.1.7、MySQL 5.0.56 等。


近几年,为了提高 MySQL 产品的竞争优势,提高性能、降低开发维护成本等,也为了方便企业用户更精准地选择合适的版本,MySQL 在发展到 5.1 系列之后,又重新规划为三条产品线。下面一起来看看。

MySQL-5.0.xx 到 MySQL-5.1.xx 的产品线

第一条产品线为:MySQL 5.0.xx 升级到 MySQL 5.1.xx,这条产品线继续完善与改进其用户体验和性能,同时又增加了新功能,可以说这条路线是 MySQL 早期产品的延续,这一系列产品的发布情况及历史版本如下。


MySQL 5.1 是当前的稳定发布系列版本。只针对漏洞修复重新发布;没有增加会影响稳定性的新功能。


MySQL 5.0 是前一个稳定发布系列版本。只针对严重漏洞修复和安全修复重新发布;没有增加会影响该系列的重要功能,并且官方也很快停止了对其的支持。


MySQL 4.0 和 MySQL 3.23 是旧的稳定发布系列版本。该版本建议不再使用,并且官方已经停止了对其的支持。


目前 Red hat linux 7 以及 CentOS 7 以前的官方 yum 源里附带的还是 MySQL 5.1 的版本,但是在绝大多数的大型互联网企业的重要场景里,已经罕见 5.1 版本了,当下,本系列的产品线已经发布到了 5.2 系列(非稳定版)。

MySQL-5.4.xx 到 MySQL-5.7.xx 产品线

为了更好地整合 MySQL AB 公司社区和第三方公司开发的新存储引擎,以及吸收新的实现算法等,从而更好地支持 SMP 架构并提高性能,第二条产品线做了大量的代码重构。版本编号从 5.4.xx 开始,最新稳定版为 5.7.xx,目前发展到了 6.0.xx 和 8.0.xx(非稳定版)。


据官方讲,MySQL 5.6 是有史以来最好的版本,是世界上使用最广的开源数据库,它提供了一套新的、先进的功能,使我们能够建设新一代基于网络和嵌入式的应用和服务。


在企业中,目前是 MySQL 5.5 和 MySQL 5.6 并存的主流时代,MySQL 5.7 是未来,本书的讲解主要以 MySQL 5.6 大版本为主,同时兼顾 MySQL 5.5,并尽可能兼顾 MySQL 5.7。

MySQL-Cluster-6.0.xx 到 MySQL-Cluster-7.5.xx 产品线

为了更好地推广 MySQL Cluster 版本,提高 MySQL Cluster 的性能和稳定性,改进和增加功能,使其对 Cluster 存储引擎提供更有效的支持与优化,因此研发了第三条产品线。该产品线的版本号为 6.0.xx,目前已发展到 7.5.xx。

生产场景中如何选择 MySQL 版本

MySQL 数据库发布特性

商业软件研发和发行公司,都会提供经过完整测试,甚至多种用户环境模拟测试及试用之后,才推出的稳定的生产环境版本,这也使得技术人员对于商业数据库软件的选择,一般不需要有太多的顾虑与考虑。


在大公司(像 BAT 等),对于数据库软件版本的选择,也会有相关人员详细阅读其新功能或改进点知识,并且会做很多相关的研究和测试工作,最后才逐步上线,而且是从边缘业务慢慢过渡到核心业务。


目前,对于 MySQL 的企业版本,需要注册账号才可以下载到编译过的安装包或源代码,而且账号只有一个月的有效期;社区版本的 MySQL 产品,则不需要注册账号,只要填写一些信息即可转到下载页面。

企业生产场景选择 MySQL 数据库的建议

企业生产场景下,数据库是重中之重,因此选择 MySQL 数据库一定要慎重。下面是给出的一些选择建议。


1)一定要选稳定版版本,即选择开源的社区版的稳定版。


2)产品线选择,建议选择第二条产品线中的 5.5 或 5.6 版本。目前互联网公司主流版本是 5.5 和 5.6。


3)选择 MySQL 数据库至少发布半年以上的稳定版本。


4)要尽可能选择前后几个月没有大的 BUG 修复的版本,而不是大量修复 BUG 的集中版本。


5)最好选择向后较长时间没有更新发布的版本。


6)要考虑开发人员开发程序使用的版本是否兼容你所选的版本。


7)首先作为内部开发测试数据库环境,测试运行几个月的时间。


8)优先对企业非核心业务采用新的数据库稳定版本软件。


9)向高手请教或者在及技术氛围好的群里和大家一起交流,使用真正的高手用过的、好用的且 BUG 少的 GA 版本产品。


经过上述工序之后,若是没有重要的功能 BUG 或性能瓶颈,则可以开始考虑作为任何业务数据服务的后端数据库软件了。


上述为选择的流程建议,实际上很多中小公司都会直接选择 GA 版的最新版本,如果业务中使用的功能比较单一,且数据和访问量不是很大,一般也不会有什么大问题,上述选择的建议,是以大规模大数据量高并发,使用数据库功能较多的场景为前提进行讲解的,对于这类场景,一定要慎重选择。


本文内容来自作者图书作品《跟老男孩学 Linux 运维:MySQL 入门与提高实践》,点击购买


2019-09-25 09:296256

评论

发布
暂无评论
发现更多内容

食堂就餐卡系统设计

Aldaron

食堂就餐卡系统设计

桔子

架构学习

呱呱

极客大学架构师训练营 作业

【极客大学】【架构师训练营】【第一周】学习总结:如何使用UML图达成设计意念

NieXY

极客大学架构师训练营

学习总结

YY

第一周总结

gen_jin

第一周架构总结

漫步云梯

架构总结

「架构师训练营」学习笔记:第1周

Amy

学习 极客大学架构师训练营

架构学习作业-食堂就餐卡系统架构

乐天

第一周作业(1)

佳明

第一周学习总结

Gavin

如何编写一份合格的架构设计文档(一)

izerone

食堂就餐卡系统架构设计⽂档

一点点..

架构学习第一周总结

lwy

week01-学习心得

强哥

极客大学架构师训练营

关于架构师的一点理解

石刻掌纹

架构师赋能

will

架构师

架构师第一课学习总结

曾祥斌

《架构师训练营》--第一周命题作业

极客大学架构师训练营

架构学习之架构图设计(1)

Paula_l

架构师课程第一周总结

dongge

架构师训练营-作业一

Jemmy

就餐卡系统架构设计文档

gen_jin

就餐卡系统设计

dongge

食堂就餐卡系统设计

Ph0rse

极客大学架构师训练营

第一周架构训练营(就餐卡系统)

Gavin

第一周作业

仪轩

架构师训练营 第1周总结

Lingjun

极客大学架构师训练营

食堂就餐卡系统设计

豌豆爸比

架构师训练营 第1周作业

Lingjun

极客大学架构师训练营

关于架构师的理解(第一周学习总结)

  • 扫码添加小助手
    领取最新资料包
MySQL 入门与实践:版本介绍与选型建议_开源_老男孩_InfoQ精选文章