数据库历史&MySQL 历史介绍 | 学习笔记

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
阿里云百炼推荐规格 ADB PostgreSQL,4核16GB 100GB 1个月
简介: 快速学习数据库历史&MySQL 历史介绍,介绍了数据库历史&MySQL 历史介绍系统机制, 以及在实际应用过程中如何使用。

开发者学堂课程【云数据库 RDS MySQL 从入门到高阶数据库历史&MySQL 历史介绍】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/996/detail/15051


数据库历史&MySQL 历史介绍


内容介绍:

一、自我介绍

二、MySQL 数据库发展史

三、数据技术分类与发展

四、数据库演进历程

五、MySQL 在数据库演进历程中的作用

六、为什么要做计算与存储分离

七、MySQL 的重大作用


我们在过去做过许多关于 MySQL 的交流,一般都讲得是技术、运维、架构,这一次我们换一个角度讲一下 MySQL 在数据库发展演进历程中的作用,使得我们总体的从发展观的角度,认识 MySQL 这个产品。


一、自我介绍

1、1997-2004 读书时间 浙江大学 02-03开始准备论文 毕业论文方向:图片库检索技术(一种数据库的类型)

2、2004-2007 软件行业 网络爬虫以及全文检索数据库(当时爬虫、百度和谷歌的检索引擎都比较热门)

3、2007-2018 互联网行业 MySQL 开源数据库体系(MySQL 在数据库中十分重要,大部分的互联网的企业或者应用都采用了以 MySQL 为基础的数据库。同时由于互联网的使用才使得MySQL整个数据库得到了大放异彩的机会。这里面又和 MySQL 的一些功能很相关,比如:简单、易用,支持高访问及处理,到现在为止还作为互联网首选的数据库在使用)

4、2012-2022 MySQL 社区 中国 MySQL 用户组主席(MySQL 用户组在2011年就已成立,在全国的几十个城市做了几百场关于 MySQL 技术的沙龙讨论)

5、2015-2018 数据库著作 《MySQL运维内参》《MySQL8Cookbook(中文版)》《Learning HBase(中文版)》2018年度电子工业出版社优秀译作者

6、2018-至今 级数云舟 提出广义数据库系统(以MySQL为基础),针对于融合数据处理引擎 DTark,解决跨库查询、跨库优化、数据查询,例如:支持中国航天空间站数字化建设

图片26.png


二、MySQL 数据库发展史

1981年,Monty 用 Basic 写第一行 Unireg 代码(MySQL 的最初创始人是 Monty,在13、14年将 Monty 请到中国与中国的 MySQL 爱好者做交流、演讲等活动)

1983年,Monty 用 C 语言重写 Unireg(MySQL 前身)

1994年,加入 SQL 交互并更名为 MySQL,MySQL 正式诞生(Monty 给产品取名字的时候会用到自己的家人,My 是 Monty 的大女儿的名字)

1995年,MySQL 发布开源版本,协议是双许可(商业+社区)基础(奠定 MySQL 能够快速发展,并且后来广为人使用的原因)

1999年,MySQL3.22.20 发布;MySQL Ab公司在瑞典成立,开发 Berkeley Db 引擎,开始支持事务

2000,MySQL goes GPL,引入 MyISAM 存储引擎

2001年,MySQL 引入 InnoDB 存储引擎,合版在4.0版本(划时代的意义,现在大部分所使用的MySQL,例如阿里云的DB云原生的技术都是基于 MySQL 的 InnoDB 去做的,InnoDB 几乎是 MySQL 的代名词)

2003年,发布 MaxDB, MySQL for SAP DB

2003年,MySQL 5.0发布(划时代的意义,MySQL 被广泛使用,MySQL 真正被认可的版本)

2005年,存储引擎 InnoDB 被 Oracle 公司收购

2008年,Sun 以10亿美金收购 MySQL AB 公司,MySQL得到快速发展

2008年,MySQL 5.1发布(对 MySQL 的发展至关重要,后来被广泛使用)

2009年,Oracle 公司以74亿美金收购 Sun 公司(同时获得 MySQL 的归属权)

2010年,MySQL 5.5发布

2013年,MySQL 5.6发布、aliyun RDS 发布,基于5.0和5.6的版本

2015年,MySQL 5.7发布、AWS Aurora 发布

2016年,aliyun PolarDB 发布(与 AWS Aurora 相似,揭开了云原生的独特的形式,到现在为止Aurora大规模在语言上使用)

2018年,MySQL 8.0发布(很多重要的革新)

2021年,MySQL Heatwave 发布,AWS 开始推动MySQL serverless(中国的阿里云也在逐步跟进,感兴趣的可以去阿里云的官方网站了解)

以 MySQL 为基础的产品,不管是 Aurora、管理数据库系统都在蓬勃茁壮的发展,对MySQL 来说有着重大的意义。MySQL 从最初的81年开始,就像一粒种子逐渐的茁壮成长,到现在位置发展成立一片森林。


三、数据技术分类与发展

(关注数据库、MySQL 的发展,在这个过程中需要了解数据库的技术是怎样的流向,一方面有助于我们了解数据库整个演进的历史,也有助于我们看明白数据库未来发展的方向。比如说 Aurora 很受欢迎,它一定是由原因一直存在的。)

图片27.png

1、上图中的第一行提到一些概念,这些概念就是关于数据的类型总结。

Datebase(数据库)1970年出现到现在有将近50年的历史。

像中国的甲骨文、微软,我们把这些统称为关系数据库系统,主要用于IT数据系统的存储、处理。

广泛应用于各种各样的IT领域,这是数据库公认的一个本质或者是大众经常看到的一个形态。这类产品如今很成熟,处于后期阶段。当然每一种产品还会继续发展,做出新的功能。

数据是一个很有意思的行业,那就是人们对于数据的认识,对于数据计算的需求,随着时间的推移不断变化和加深的。那么我们对于数据的需求会随着比如:对于大规模数据离线存储和实时计算产生了新的类型:Big data

2、人类对大规模数据与实时数据的需求是不断跟进的,因此出现 Big data

虽然上述数据库已经发展的十分成熟,但是不会影响数据新的技术不断出现、数据的新的产品不断出现。像大数据系统,也是数据库的一种。例如:Hadoop,spark,有许多企业在做相关的核心产品。

3、这些数据类型不是数据的中间者,到2010年,我们发现两种不同的数据领域方案出现了。其中一组就是起源于国内的:数据中台(14、15年)数据中台解决了关于多维度数据的计算的问题,是一个方案,做了融合数据的服务,但不是一个内核的产品,它是用多种数据库产品组装起来的一种方案级的解决数据需求的问题。(方案级解决数据需求,到现在还有许多人认可)

4、Cloud Native 出现于2016左右,由亚马逊、Google 提出的一个系统,出现了很多的产品,例如:aueora、国内 polarDB 。比较适合于云计算场景。

本质:透明化运维,它的存在是为了让云服务透明的支持用户使用过程中的方便的运维。(方便做大规模运维,以百万乃至千万的实例去运维的场景)为技术服务提供了非常有利的条件,称为亮化式服务。

5、2018年出现广义数据库系统,可以有效的与云原生系统做互补,形成关于混合数据计算的有利支撑。在技术精细化发展的过程中,想要做到把各种经济化的技术有效融合,提出广义数据库系统。

本质:云原生技术,同时可以用内核融合的技术将多种云原生产品或者多种科研产品多种对数据的算法做内核级的融合形成在用户使用过程中对多维度数据计算融合的问题。

与数据中台的过程相似,但是数据中台是一个方案级的概念,不是内核级的产品。

我们希望通过这样的方式提供一个内核的产品,用它来同云原生的数据库相配合能够全方位解决用户对于数据的各种各样的诉求,不管是经济化的诉求还是融合的诉求。这样这个产品的界面定位就非常的清晰(上表可以认为现在为止整个数据技术发展过程中的一个全景图。)比如像云原生系统的那么多产品,归结起来就是无外乎是各种云计算场景里面的通讯化应用的一个支撑。


四、数据库演进历程

图片28.png

用上图解释为什么数据库发展是这样的过程,可以通俗了解。

1、在远古时代,人类的物质产品不太丰富的情况下,想要搬运货物、运输货物,人类自己就可以解决。

类比成数据库:之前的数据量不大也很简单,用简单的结绳记事、算盘即可将数据算清楚。

以上是数据库的史前阶段,一种很古老的方式。

2、早期数据库阶段

相当于在我们运输货物的阶段,我们的工具有了新的进步,我们不再用手来解决。可以用工具来解决,例如用马、牛、独轮车等,是一个很大的进步。

出现小型数据库产品。在1970年之前。

3、传统数据阶段(ORACLE、SQL SERVER)

市面上常见的运输工具,例如出现货车、轮船等。运输能力较强、较为现代化。但是每一种形态的产品只适合于一种计算。像货车只能在陆地上跑,轮船只能在水中运输。

4、云原生数据库阶段

解决大规模集群化的运维,相当于我们可以组一个车队,用批量的方式解决大规模数据的问题。在这个阶段有国外得 POLARDB、AURORA SPANNER

5、广义数据库阶段

混合型计算。假设运一个东西,如果跋山涉水的话,从卡车到轮船再到飞机之类的换几种类型,我们可以制造一种类似于航空母舰的方式都可以将上面的方式解决掉,就能比较好的适配各种各样的场景。

这种广义数据库系统不管是TB运算、图计算,都能支撑是最好的。

现在受大部分人关注的还是云原生手段。云原生基本上是现在主流的一个场景。像国内的 polarDB。

那麽上述的内容和 MySQL 有什么关系呢?


五、MySQL 在数据库演进历程中的作用

无论怎么解释、怎么分类,MySQL 从传统阶段开始发挥了巨大的作用。MySQL 本身是一种传统的数据库,同时在云原生数据库阶段不管是什么技术,他们最初的形态都是基于 MySQL。换句话说,他们是将 MySQL 这种单机的版本,通过架构的优化变成了一个原生的产品。

云原生的核心:计算与存储分离,物理复制(MySQL 的传统的逻辑复制编程物理复制)


六、为什么要做计算与存储分离

计算与存储分离是一个手段不是目标,目标是使数据库能够承载大规模的数据量、计算量。在存储上实现大规模的扩展,同时在计算层接受大规模的计算支撑。这是就会发现,传统的架构是难以支撑的,我们要将计算和存储分离开,在计算层上做分离的时候就需要做物理复制快速拉起实力。在存储分离之后,才能在数据增大的时候进行扩容。

以上云原生的本质都是依据 MySQL 做的。将 MySQL 的计算层和存储层分开之后,做物理复制,从而实现快速拉起实力的做法。从而实现快速拓展,把 MySQL 的存储层实现透明的弹性扩容的支撑。

在所有的阶段都离不开上面的产品,MySQL 成为事实的新型数据库的一个生态标准,换句话说一款新的产品或者新的技术,不管怎么做,在上层都应该作为事实主流的MySQL 为核心去做拓展。

 

七、MySQL 的重大作用

MySQL 是事实主流,在所有的阶段都离不开 MySQL。在生产一款新产品、新技术,不管怎么做,在上层都应该以作为事实主流的 MySQL 为核心做拓展。

MySQL 几乎决定了新兴数据库领域的生态圈。做新闻产品在未来时间不太适合深造一种数据库,而是做到以 MySQL 为基础再去做不同的扩展,不同产品的功能或者拓展。以上就是 MySQL 所起到的重大作用。

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
11天前
|
SQL 关系型数据库 MySQL
12 PHP配置数据库MySQL
路老师分享了PHP操作MySQL数据库的方法,包括安装并连接MySQL服务器、选择数据库、执行SQL语句(如插入、更新、删除和查询),以及将结果集返回到数组。通过具体示例代码,详细介绍了每一步的操作流程,帮助读者快速入门PHP与MySQL的交互。
26 1
|
13天前
|
SQL 关系型数据库 MySQL
go语言数据库中mysql驱动安装
【11月更文挑战第2天】
29 4
|
20天前
|
监控 关系型数据库 MySQL
数据库优化:MySQL索引策略与查询性能调优实战
【10月更文挑战第27天】本文深入探讨了MySQL的索引策略和查询性能调优技巧。通过介绍B-Tree索引、哈希索引和全文索引等不同类型,以及如何创建和维护索引,结合实战案例分析查询执行计划,帮助读者掌握提升查询性能的方法。定期优化索引和调整查询语句是提高数据库性能的关键。
95 1
|
7天前
|
运维 关系型数据库 MySQL
安装MySQL8数据库
本文介绍了MySQL的不同版本及其特点,并详细描述了如何通过Yum源安装MySQL 8.4社区版,包括配置Yum源、安装MySQL、启动服务、设置开机自启动、修改root用户密码以及设置远程登录等步骤。最后还提供了测试连接的方法。适用于初学者和运维人员。
64 0
|
1月前
|
存储 SQL 关系型数据库
Mysql学习笔记(二):数据库命令行代码总结
这篇文章是关于MySQL数据库命令行操作的总结,包括登录、退出、查看时间与版本、数据库和数据表的基本操作(如创建、删除、查看)、数据的增删改查等。它还涉及了如何通过SQL语句进行条件查询、模糊查询、范围查询和限制查询,以及如何进行表结构的修改。这些内容对于初学者来说非常实用,是学习MySQL数据库管理的基础。
131 6
|
1月前
|
存储 关系型数据库 MySQL
Mysql(4)—数据库索引
数据库索引是用于提高数据检索效率的数据结构,类似于书籍中的索引。它允许用户快速找到数据,而无需扫描整个表。MySQL中的索引可以显著提升查询速度,使数据库操作更加高效。索引的发展经历了从无索引、简单索引到B-树、哈希索引、位图索引、全文索引等多个阶段。
63 3
Mysql(4)—数据库索引
|
1月前
|
SQL Ubuntu 关系型数据库
Mysql学习笔记(一):数据库详细介绍以及Navicat简单使用
本文为MySQL学习笔记,介绍了数据库的基本概念,包括行、列、主键等,并解释了C/S和B/S架构以及SQL语言的分类。接着,指导如何在Windows和Ubuntu系统上安装MySQL,并提供了启动、停止和重启服务的命令。文章还涵盖了Navicat的使用,包括安装、登录和新建表格等步骤。最后,介绍了MySQL中的数据类型和字段约束,如主键、外键、非空和唯一等。
71 3
Mysql学习笔记(一):数据库详细介绍以及Navicat简单使用
|
22天前
|
关系型数据库 MySQL Linux
在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,包括准备工作、下载源码、编译安装、配置 MySQL 服务、登录设置等。
本文介绍了在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,包括准备工作、下载源码、编译安装、配置 MySQL 服务、登录设置等。同时,文章还对比了编译源码安装与使用 RPM 包安装的优缺点,帮助读者根据需求选择最合适的方法。通过具体案例,展示了编译源码安装的灵活性和定制性。
65 2
|
25天前
|
存储 关系型数据库 MySQL
MySQL vs. PostgreSQL:选择适合你的开源数据库
在众多开源数据库中,MySQL和PostgreSQL无疑是最受欢迎的两个。它们都有着强大的功能、广泛的社区支持和丰富的生态系统。然而,它们在设计理念、性能特点、功能特性等方面存在着显著的差异。本文将从这三个方面对MySQL和PostgreSQL进行比较,以帮助您选择更适合您需求的开源数据库。
96 4
|
30天前
|
存储 关系型数据库 MySQL
如何在MySQL中创建数据库?
【10月更文挑战第16天】如何在MySQL中创建数据库?
下一篇
无影云桌面