0

0

浅谈MySQL原理与优化(一)之历史与体系结构

藏色散人

藏色散人

发布时间:2019-05-09 09:47:58

|

2407人浏览过

|

来源于aliyun

转载

MySQL是目前互联网公司应用最广泛的数据库软件(DBMS),没有之一。小至初创公司,大至BAT,GOOGLE,FACEBOOK都在自己的业务中大量的使用MySQL作为数据存储。阿里云也提供了MySQL的云版本——云数据库RDS MySQL版。这一系列的文章希望能帮助大家更好的了解MySQL,更好的发挥数据库的性能,让我们的数据存储更有效率。

浅谈MySQL原理与优化(一)之历史与体系结构

MySQL的历史

MySQL是一个开源的自由软件,我们可以在网上直接获取到它的源码。至今为止MySQL已经有超过20年的历史,大体的里程碑事件如下:

● 1996年,MySQL 1.0发布,它只面向一小拨人。到了1996年10月,MySQL 3.11.1发布(MySQL没有2.x版本),最开始只提供Solaris下的二进制版本。一个月后,Linux版本出现了。在接下来的两年里,MySQL被依次移植到各个平台。

● 1999~2000年,MySQL AB公司在瑞典成立,开发出了Berkeley DB引擎, 由于BDB支持事务处理,因此MySQL从此开始支持事务处理了。

● 2001年 V3.23:MyISAM引擎,以及Innodb引擎雏形

● 2003年 V4.0:新的语法特性,Innodb成为标准组件,加入query_cache

● 2006年 V5.0:视图,触发器,存储过程等功能加入

● 2008年 V5.1:分区,行复制

● 2010年 V5.5:Innodb成为默认引擎,半同步复制

● V5.6 Innodb改进,复制功能等提升

● V5.7 加入mariaDB等新的存储引擎

MySQL的体系架构

MySQL并没有和同时期数据库的一样,而是采用了自己独特的架构。这个架构我们可以用唐代诗人杜牧的一首著名的诗句来理解:

长安回望绣成堆,山顶千门次第开。 一骑红尘妃子笑,无人知是荔枝来。

这里面有三个角色:

8d6652a8d0ad8158458dd24c41cfccf.png

● 妃子:负责提出需求,要吃荔枝

腾讯AI 开放平台
腾讯AI 开放平台

腾讯AI开放平台

下载

● 大臣:负责安排采摘荔枝,走哪条路径,发放公文等

 快递员:负责运送荔枝

这就对应MySQL体系结构中的三个角色:客户端,处理引擎,执行引擎

ec999ad29d8eb23c8def61f2564f4b7.png

用体系架构图来表示就是这样的

b201060b3d863e7d1ff6c0b1495deab.png

● 客户端

相当于妃子的角色:用户操作客户端来发出查询、修改、添加、删除数据的需求

● 处理引擎

处理引擎相当于大臣的角色,负责解析SQL语句,生成执行计划。除此之外,还负责有以下责任,我们在优化时可以注意:

• 负责管理连接与线程:使用了多线程模型,设置thread_cache_size可以利用已有线程

• 负责管理query cache:利用现成结果,直接缓存结果集,测试语句性能时需要用 sql_no_cache hint 屏蔽

● 存储引擎

存储引擎相当于快递员的角色,负责数据实际存储以及数据的读取,修改等操作。不同的存储引擎,在实际的执行中会表现出不同的特性。在后面的文章会详细展开介绍。

综上就是MySQL的体系结构概述,希望对大家有所帮助。

相关专题

更多
c++ 根号
c++ 根号

本专题整合了c++根号相关教程,阅读专题下面的文章了解更多详细内容。

22

2026.01.23

c++空格相关教程合集
c++空格相关教程合集

本专题整合了c++空格相关教程,阅读专题下面的文章了解更多详细内容。

24

2026.01.23

yy漫画官方登录入口地址合集
yy漫画官方登录入口地址合集

本专题整合了yy漫画入口相关合集,阅读专题下面的文章了解更多详细内容。

99

2026.01.23

漫蛙最新入口地址汇总2026
漫蛙最新入口地址汇总2026

本专题整合了漫蛙最新入口地址大全,阅读专题下面的文章了解更多详细内容。

132

2026.01.23

C++ 高级模板编程与元编程
C++ 高级模板编程与元编程

本专题深入讲解 C++ 中的高级模板编程与元编程技术,涵盖模板特化、SFINAE、模板递归、类型萃取、编译时常量与计算、C++17 的折叠表达式与变长模板参数等。通过多个实际示例,帮助开发者掌握 如何利用 C++ 模板机制编写高效、可扩展的通用代码,并提升代码的灵活性与性能。

15

2026.01.23

php远程文件教程合集
php远程文件教程合集

本专题整合了php远程文件相关教程,阅读专题下面的文章了解更多详细内容。

65

2026.01.22

PHP后端开发相关内容汇总
PHP后端开发相关内容汇总

本专题整合了PHP后端开发相关内容,阅读专题下面的文章了解更多详细内容。

61

2026.01.22

php会话教程合集
php会话教程合集

本专题整合了php会话教程相关合集,阅读专题下面的文章了解更多详细内容。

63

2026.01.22

宝塔PHP8.4相关教程汇总
宝塔PHP8.4相关教程汇总

本专题整合了宝塔PHP8.4相关教程,阅读专题下面的文章了解更多详细内容。

33

2026.01.22

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
MySQL 教程
MySQL 教程

共48课时 | 1.9万人学习

MySQL 初学入门(mosh老师)
MySQL 初学入门(mosh老师)

共3课时 | 0.3万人学习

简单聊聊mysql8与网络通信
简单聊聊mysql8与网络通信

共1课时 | 808人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号