开发者学堂课程【云数据库 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,解决跨库查询、跨库优化、数据查询,例如:支持中国航天空间站数字化建设
二、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 很受欢迎,它一定是由原因一直存在的。)
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年出现广义数据库系统,可以有效的与云原生系统做互补,形成关于混合数据计算的有利支撑。在技术精细化发展的过程中,想要做到把各种经济化的技术有效融合,提出广义数据库系统。
本质:云原生技术,同时可以用内核融合的技术将多种云原生产品或者多种科研产品多种对数据的算法做内核级的融合形成在用户使用过程中对多维度数据计算融合的问题。
与数据中台的过程相似,但是数据中台是一个方案级的概念,不是内核级的产品。
我们希望通过这样的方式提供一个内核的产品,用它来同云原生的数据库相配合能够全方位解决用户对于数据的各种各样的诉求,不管是经济化的诉求还是融合的诉求。这样这个产品的界面定位就非常的清晰(上表可以认为现在为止整个数据技术发展过程中的一个全景图。)比如像云原生系统的那么多产品,归结起来就是无外乎是各种云计算场景里面的通讯化应用的一个支撑。
四、数据库演进历程
用上图解释为什么数据库发展是这样的过程,可以通俗了解。
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 所起到的重大作用。