秋招之后,开始深入学习后端开发知识啦。把学到的东西分享给大家最开心啦。就从MySQL开始吧。
首先说一下MySQL的历史和地位。主要是看一下我们为什么要学习,而不是说让我们学什么我们就学什么。
地位
这张图是我从DB-Engines截取的2024年12月最新的数据库排行榜。我们先来简单的看一下前十名我们都见过哪些。第一是Oracle,听说过,没用过,因为收费。第二是MySQL,几乎只要写项目就一直在用。第三是SQL Server,在学校学习数据库课程时用的是这个。第四是PostgreSQL,在很多博客和视频中都有博主提到过,甚至有人认为在不久的将来能够取代MySQL,但是我不认同哈。第五是MongoDB,文档型数据库,大家有精力也可以学一下。第六是Redis,这个不用说了吧,缓存数据库,后端开发必学,面试必问。第七是Snowflake,没听过。第八是ES,基于倒排索引的全文搜索引擎,第九是IBM的Db2,第十是SQLite,非常轻量,可以集成到应用程序中。
回过头来,我们再来看占比最高的Oracle和MySQL。Oracle是付费垄断的,主要给有钱的大企业使用,在互联网企业之外使用量第一。MySQL 是最流行的关系型数据库软件之一,由于其体积小、速度快、开源免费、简单易用、维护成本
低等,在集群架构中易于扩展、高可用,因此深受互联网开发者和企业的欢迎。在互联网企业中使用量排名第一。咱们大家当然都是在互联网企业工作的啦,所以MySQL就是我们心中的第一。
历史
发展
这是我在阿里云的开发者社区截取的一张MySQL的发展历程。我们可以一起来简单的看一下。首先是79年,Monty开发了一款面向报表的存储引擎,然后85年,Monty和他的合伙人一起组建公司,准们开始做存储引擎工具了。90年,Monty和David想要结合mSQL,使ISAM能够提供SQL接口,但是速度不满足要求,然后开始开发新产品了。96年,Monty和合伙人开发出MySQL1.0,96年3.1发布,发布linux版本,这就是说我们可以在linux系统上使用了。有了产品之后,开始是开公司,MySQLAB。2000年开源。2000年4月ISAM->MyISAM。2001年集成InnoDB,2005年,加入高级特性,对标Oracle,
2008年,进入SUN时代,2009年,进入Oracle时代,跟Java一样啊。2010年,版本划分,5.5版本默认引擎更换为InnoDB。后面陆续更新5.6,5.7,8.0。其实现在我们大多数还在使用5.7版本,或者8.0版本,后面的一些更新很多程序员大佬都表示没啥用,所以就不去过多了解了。
分支
下面再来看一下MySQL的主流分支。
这个图同样来自阿里云技术开发者社区,也就是上面的网址。
MySQL从最初的1.0、3.1到后来的8.0,发生了各种各样的变化。被Oracle收购后,MySQL的版本演化出了多个分支,除了需要付费的MySQL企业版本,还有很多MySQL社区版本。还有一条分支非常流行的开源分支版本叫Percona Server,它是MySQL的技术支持公司Percona推出的,也是在实际工作中经常碰到的。Percona Server在MySQL官方版本的基础上做了一些补丁和优化,同时推出了一些工具。另外一个非常不错的版本叫MariaDB,它是MySQL的公司被Oracle收购后,MySQL的创始人Monty先生,按原来的思路重新写的一套新数据库,同时也把 InnoDB 引擎作为主要存储引擎,也算 MySQL 的分支。