学习MySQL先有全局观,细说其发展历程及特点

这篇具有很好参考价值的文章主要介绍了学习MySQL先有全局观,细说其发展历程及特点。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

学习MySQL先有全局观,细说其发展历程及特点,mysql,学习,mysql,数据库,percona,mariadb,mysql结构

相信很多同学在接触编程之初,就接触过数据库,而对于其中关系型数据库中的翘楚——mysql,自然也是天天打交道的。恰逢今天是博主的创作纪念日,那么不如我们就开启一个系列篇章,来从各个维度讲解mysql,力求又有广度又有深度,今天就让我们开启第一课,说说mysql的发展历程及特点

📕作者简介:战斧,从事金融IT行业,有着多年一线开发、架构经验;爱好广泛,乐于分享,致力于创作更多高质量内容
📗本文收录于 mysql 专栏,有需要者,可直接订阅专栏实时获取更新
📘高质量专栏 云原生、RabbitMQ、Spring全家桶 等仍在更新,欢迎指导
📙Zookeeper Redis dubbo docker netty等诸多框架,以及架构与分布式专题即将上线,敬请期待


一、枝繁叶茂的MySQL家族

1. 发展历程

MySQL数据库的起源可以追溯到1995年,由Michael WideniusDavid Axmark共同开发,原属于瑞典的MySQL AB公司,该公司于2008年被升阳微系统(Sun )收购。2009年,甲骨文公司(Oracle)收购升阳微系统公司,至此,MySQL成为Oracle旗下产品。Oracle 公司区分了企业版社区版

企业版是MySQL的商业版本,由Oracle公司提供支持和服务,包括高级功能、技术支持和安全性保证等。
社区版是MySQL的开源版本,由MySQL社区开发和维护,是免费的,但不包括商业版所拥有的高级功能和技术支持
企业版社区版的区别主要在于其支持和服务的层面,大多数功能在两个版本中都是相同的。

而经过多年发展,MySQL的版本也在不停迭代,目前最新版本为Version 8.0。我们可以记录一下其中一些比较重要的版本,以及该版本的特性:

  • MySQL 4.0
    MySQL 4.0发布于2003年,是MySQL的一次重大更新。该版本增加了许多新特性,包括:
    1 存储过程和触发器,可以在MySQL中执行复杂的逻辑处理;
    2 支持Unicode,可以存储和处理多种语言的文本数据;
    3 引入InnoDB存储引擎,支持事务和行级锁。

  • MySQL 5.0
    MySQL 5.0发布于2005年,是MySQL的一个里程碑版本。该版本增加了许多新特性,包括:
    引入视图,可以对多个表进行简化查询;
    字符集支持,现在可以支持更多的字符集;
    支持存储过程、函数和触发器的DDL语句(CREATE、ALTER、DROP等)-

  • MySQL 5.5
    MySQL 5.5发布于2010年,是MySQL的一个重要版本。该版本增加了许多新特性,包括:
    支持半同步复制,提高了复制的可靠性和性能;
    支持全文搜索,可以进行更高级的文本搜索;
    支持多线程,可以提高并发性能。

  • MySQL 5.6
    MySQL 5.6发布于2013年,是MySQL的一个重要版本。该版本增加了许多新特性,包括:
    支持NoSQL功能,可以使用Memcached API操作MySQL数据库;
    支持多主复制,提高了可扩展性和可用性;
    支持更多的索引和锁机制,提高了查询效率。

  • MySQL 8.0
    MySQL 8.0是目前最新的MySQL版本,于2018年发布。该版本增加了许多新特性,包括:
    改进了JSON支持,可以更轻松地存储和查询JSON数据;
    支持Window函数,可以进行更复杂的查询;
    改进了性能和安全性,包括更快的查询和更严格的密码规则。

2. 分支版本

我们上面所介绍的都是官方版本,现在是由Oracle公司维护。但其实MySQL 还有一些其他版本,最常见的有MariaDBPercona

MariaDB
学习MySQL先有全局观,细说其发展历程及特点,mysql,学习,mysql,数据库,percona,mariadb,mysql结构

MariaDB是MySQL创始人之一Michael Widenius创建的MySQL分支,因为他担心MySQL被Oracle收购后,将会对MySQL的开源性质和社区发展产生不利影响,于是在2010年创建了MariaDB分支,MariaDB的目的是提供一个自由、开源、高性能、可扩展性好、与MySQL兼容的数据库系统,同时包括新的、改进的特性和性能优化

Percona
学习MySQL先有全局观,细说其发展历程及特点,mysql,学习,mysql,数据库,percona,mariadb,mysql结构

Percona是由Percona公司创立的一个MySQL分支,旨在为企业客户提供高性能、高可用性、高可扩展性的MySQL数据库解决方案。Percona的主要特点是提供了一些MySQL不支持的高级功能,例如高性能查询日志、InnoDB存储引擎的改进等等。我们来看下这些版本之间的不同:

特点/功能 MySQL Percona MariaDB
兼容性 兼容各大流行操作系统和开发环境 兼容性良好,可与MySQL插件兼容 兼容性良好,可与MySQL插件兼容,同时支持更多的存储引擎
性能 相对较快 性能优化,可比MySQL快 性能不如Percona,但可靠性更高
安全性 安全性高,可通过访问控制和SSL保护数据传输 安全性较高,可通过访问控制和SSL保护数据传输 安全性高,支持多种访问控制和SSL保护数据传输
可扩展性 支持垂直和水平扩展 支持垂直和水平扩展,提供多种扩展方案 支持垂直和水平扩展,提供多种扩展方案
存储引擎 支持多种存储引擎 支持多种存储引擎,包括InnoDB和XtraDB 支持更多的存储引擎,包括MariaDB、XtraDB、TokuDB
复制 支持单向复制和双向复制 支持异步和半同步复制 支持同步和异步复制
高可用性 支持主从复制,可通过故障转移实现高可用性 支持异步和半同步复制,可通过故障转移实现高可用性 支持同步和异步复制,可通过Galera集群实现高可用性
开发者支持 社区活跃,有大量开发者贡献代码 社区活跃,有多个主要贡献者 社区活跃,有多个主要贡献者
支持和维护 由Oracle提供支持和维护 由Percona提供支持和维护;可在Percona官网上下载免费社区版 由MariaDB基金会提供支持和维护;可在MariaDB官网上下载免费社区版

学习MySQL先有全局观,细说其发展历程及特点,mysql,学习,mysql,数据库,percona,mariadb,mysql结构

当然,面对这些版本,我们该如何选择呢?如果对性能要求较高,可以选择Percona版本;如果更看重稳定性和兼容性,可以选择MySQL官方版本或MariaDB。如果是使用官方版本,建议使用5.7及以上的版本。

当然需要注意的是,虽然我们说上述分支版本都可以算Mysql的一个分支,但并不意味着完全兼容,尤其是越往后发展,各自差异难免越多,当我们想要做版本迁移的时候,一定要审慎

二、特点分析

1. 常用数据库

MySQL数据库除了我们所知道的开源免费外,其实从日常使用中,它还有如下特点:
(1)高性能:MySQL在处理大量数据上拥有较高的性能。MySQL支持查询缓存、分区表、多线程、索引等优化技术,有助于提高性能。
(2)可移植性好:MySQL可以在各种操作系统上运行,如Windows、Linux、Unix等。
(3)可扩展:MySQL支持集群和分布式部署,可以通过水平和垂直扩展来提高性能和可靠性。

但是,我们也知道,除了MySQL,目前还有很多其他的关系型数据库,比如OracleSQL ServerPostgreSQL,我这里借用一张今年的使用分布排名(排名仅供参考):

学习MySQL先有全局观,细说其发展历程及特点,mysql,学习,mysql,数据库,percona,mariadb,mysql结构
可以看到,榜单前四名正是我们提到的这几位,可以说这几个数据库已经占据了大半的市场。

2. 选型角度及场景

对于一般的使用者,尤其是在项目初期,无法确定后续需求的情况下,去做数据库选型其实是非常困难的。但我们需要遵循几个大的方向。也就是预估负载量与性能评估扩展难易度可靠性与可用性数据库安全性等,我们可以对数据库进行一个简单的点评。

数据库 优势 劣势
MySQL - 开源免费,易于安装和学习
- 经过市场验证,性能稳定
- 支持多种编程语言
- 缺乏一些高级功能(如分布式事务和崩溃恢复)
- 功能和一些企业级产品相比较少
Oracle - 企业级数据库产品,完整的功能集合
- 可靠性高,数据安全性好
- 通过引入云技术,能够可伸缩性和容错性
- 学习曲线陡峭
- 价格昂贵
SQL Server - 微软开发的数据库产品,与Windows系统无缝集成
- 用户友好型高,易于使用
- 良好的可伸缩性和可扩展性
- 各种功能丰富
- 价格昂贵
PostgreSQL - 开源免费,易于安装和学习
- 支持多种操作系统
- 对多种数据类型的支持比较完善
- 具有高度的可扩展性
- 较为复杂,不够直观
- 性能和速度相对较慢

因为本期的主题是 MySQL, 那在什么场景下,选择Mysql会比较合适呢?其实基于Mysql的设计与定位,其适合读写比较平衡,数据量不太大,需要快速部署和开发、对成本敏感的场景,也正是因为如此,Mysql在中小型的Web应用中被广泛应用

三、三大组成部分

MySQL数据库总体分为三个部分:Server层存储引擎插件

Server层:负责处理客户端连接、查询解析和优化、数据访问控制、事务处理、日志、replication和其他管理操作。
存储引擎:负责数据的存储和检索等操作。MySQL支持多个存储引擎,如InnoDB、MyISAM、MEMORY等。
物理磁盘层:真正存储数据的位置,保存着数据库数据以及各类日志。

如果我们有一个java程序,我们从mysql数据库查询数据时,其步骤主要可概括为以下几步

  1. Java 程序通过数据库连接层与 MySQL 数据库建立连接;
  2. MySQL 数据库服务层接收到连接请求后,验证连接权限并解析,并将请求转发给相应的存储引擎层;
  3. 存储引擎层接收到查询请求后,进行 SQL 语句的执行;
  4. 如果查询涉及到表的查询,存储引擎层将会向物理磁盘层发送读取磁盘数据的请求;
  5. 物理磁盘层通过磁盘控制器等硬件设备读取数据,并将数据传递给存储引擎层;
  6. 存储引擎层将结果集返回给 MySQL 服务层;
  7. MySQL 服务层将结果集返回给 Java 程序。

当然,其具体的动作会更加复杂,我们借用一张图来供大家参考:

学习MySQL先有全局观,细说其发展历程及特点,mysql,学习,mysql,数据库,percona,mariadb,mysql结构

四、总结

经过前面一些基础的介绍,我们不难看出MySQL是一款功能全面、性能卓越、稳定可靠、易于管理的数据库系统。应该说每个数据库都有自己的优势与劣势,而MySQL凭借的开源免费和平衡的性能,得到了广泛的应用和认可。今天作为第一课,只是为了帮助大家有一点全局观念,更深的使用技术,及原理,我们将马上对其进行深入剖析文章来源地址https://www.toymoban.com/news/detail-752094.html

到了这里,关于学习MySQL先有全局观,细说其发展历程及特点的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • java的详细发展历程

    Java是一种跨平台、面向对象的编程语言,具有简单性、可移植性、安全性等特点。Java的历史可以追溯到上世纪90年代初期,以下是Java的详细发展历程: 1991年,Sun Microsystems公司的James Gosling和他的团队开始开发一种名为Oak的编程语言,目标是为嵌入式设备提供一种可靠的编程

    2024年02月08日
    浏览(51)
  • 百度云盘发展历程与影响

    摘要: 百度云盘作为中国领先的云存储与共享服务提供商,自其创立至今经历了多个阶段的发展与变革。本论文通过对百度云盘的历史回顾与分析,探讨了其在技术、商业模式、用户体验以及对社会的影响等方面的演变。同时,还分析了在竞争激烈的云存储领域中,百度云盘

    2024年02月13日
    浏览(45)
  • 探索SpringBoot发展历程

    ✅作者简介:大家好,我是Leo,热爱Java后端开发者,一个想要与大家共同进步的男人😉😉 🍎个人主页:Leo的博客 💞当前专栏: 循序渐进学SpringBoot ✨特色专栏: MySQL学习 🥭本文内容:探索SpringBoot发展历程 📚个人知识库: [Leo知识库]https://gaoziman.gitee.io/blogs/),欢迎大家

    2024年02月03日
    浏览(47)
  • 人工智能的发展历程

    人工智能的发展经历了多个阶段,以下是一些比较重要的发展历程和里程碑事件: 1. 机械化时代(1940年代-1950年代):在这个阶段,人工智能的研究主要集中在如何使用机器来模拟人类的思考方式。1943年,心理学家麦库洛克和皮茨在其著名的“逻辑神经元”模型中提出了“

    2024年02月13日
    浏览(45)
  • 【NLP相关】NLP的发展历程

    ❤️觉得内容不错的话,欢迎点赞收藏加关注😊😊😊,后续会继续输入更多优质内容❤️ 👉有问题欢迎大家加关注私戳或者评论(包括但不限于NLP算法相关,linux学习相关,读研读博相关......)👈 自然语言处理(Natural Language Processing,NLP)是一种计算机科学和人工智能交

    2023年04月11日
    浏览(47)
  • ChatGPT生成式算法及发展历程

    GPT(Generative Pre-Trained Transformer)系列是OpenAI开发的一系列以Transformer[2]为基础的生成式预训练模型,这个系列目前包括文本预训练模型GPT-1[3],GPT-2[4],GPT-3[5],InstructGPT[7]、ChatGPT[8](这两个工作可以看作GPT-3.5的延伸),图像预训练iGPT[6],GPT-4[1]。 ​图1 不同生成模型概览 生

    2024年02月02日
    浏览(49)
  • 简单介绍一下YOLO算法发展历程

    前言: Hello大家好,我是小哥谈。 随着人工智能技术的发展,YOLO算法已经成为了一个热门话题。到目前为止,YOLO算法已经经历了多个版本的发展迭代,许多研究者对YOLO算法进行了改进和创新。为了让大家理解的更透彻,本文就由浅入深的向大家介绍YOLOv1到YOLOv5的发展历程,

    2024年02月05日
    浏览(53)
  • C语言起源、特性和发展历程

    本文从ALGOL 60语言谈起,简述C语言的起源和发展历程,然后对C语言的一些特性做了探讨,最后说说C语言为什么在众多编程语言中,起到了承上启下的作用。 本文介绍以下内容: C语言的起源 C语言的发展 C语言的特性 C语言的重要性 C语言的前身是B语言,B语言的英文全称是

    2024年02月01日
    浏览(39)
  • ERP发展历程和应用现状综述

    ERP(Enterprise Resource Planning,企业资源计划)是一种集成管理信息系统,可以帮助企业实现资源的集成管理和信息化运营,从而提高企业的运营效率和竞争力。自上世纪90年代初开始,ERP系统开始逐渐普及,经历了多个发展阶段,如下所述: 第一代ERP(1990年代初):主要是基

    2024年02月07日
    浏览(43)
  • 【技术史】人工智能的发展历程、技术发展和应用领域

    本文是人工智能简史的详细介绍,共分10个章节,涵盖了人工智能的发展历程、技术发展和应用领域等方面。

    2024年02月06日
    浏览(60)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包