剖析MySQL黑盒——MySQL架构设计

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: 为何称MySQL为黑盒?对于大部分的开发人员而言,编写增删查改的sql语句通过数据库连接去操作数据库,但并不关心数据库是如何监听请求和从连接中把请求数据中提取出来,往往在意表结构,sql执行效率慢就给他们建立索引,完全把MySQL当作黑盒子去使用。

为何称MySQL为黑盒?


对于大部分的开发人员而言,编写增删查改的sql语句通过数据库连接去操作数据库,但并不关心数据库是如何监听请求和从连接中把请求数据中提取出来,往往在意表结构,sql执行效率慢就给他们建立索引,完全把MySQL当作黑盒子去使用。


1. 网络连接必须使用线程来处理


MySQL 使用内部线程来实现监听和读取请求。

df5eb7d67209fc870983534b8d3faa32.png


2. SQL接口:负责处理接收到的sql语句


MySQL通过sql接口把我们平时编写的sql语句简单化,让我们轻松地学会和编写sql语句,但其底层实现其实是非常复杂。当工作线程接收到sql语句之后,会交给sql接口去执行。

c326b720256ddf7963a6e3d4b00c8230.png


3. 查询解释器:让MySQL看懂sql语句


MySQL是一个数据管理系统,并不能像我们一样直接读懂sql语句,例如:

select id, name, age from users where id = 1

需要借助组件 查询解析器 对sql语句进行解析和拆解,拆解成以下几部分:

  1. from users: 我们需要从 users 表里面查询数据
  2. where id = 1 :查询id字段值为1的那行数据
  3. select id, name, age : 从查出来的那行数据中提取出 "id,name,age"三个字段

376b76d404054e61844c7d42e0d5113c.png


4. 查询优化器:选择最优的查询路径


查询优化器会根据sql生成查询路径树,然后从里面选择一条最优的查询路径出来。

8270746c9b9a0d7ffeb899820bf6b1fd.png


5. 调用存储引擎接口,真正执行sql语句


数据库存储的数据,有可能存储在磁盘上,有可能存储在内存中。那怎么判别查询的数据存放在哪一个地方?存储引擎根据执行器的调度执行sql逻辑,无论是从内存缓存中查询数据,从磁盘中更新数据,一系列操作全都由存储引擎执行。

9dbe93eba7b71d9e02d6fe7c98d48acb.png


6. 执行器:根据执行计划调度存储引擎


执行器根据优化器的执行计划去调用存储引擎的各种接口来完成sql语句的执行。

26b7106730bd36416c9469d3da4100df.png


总结:


在MySQL架构设计中,SQL接口、SQL解析器、查询优化器、执行器都是一套通用的组件,但是存储引擎却有不同的选择,例如:InnoDB、MyISAM、Memory等,对应不同的应用场景,MySQL的默认是 InnoDB,在后续会一步一步分析。 所以综上所述,MySQL的执行sql语句的顺序为: sql接口->解析器:解释sql->优化器:生成执行计划->执行器:执行计划去调用InnoDB存储引擎接口执行sql

相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
2天前
|
SQL canal 运维
MySQL高可用架构探秘:主从复制剖析、切换策略、延迟优化与架构选型
MySQL高可用架构探秘:主从复制剖析、切换策略、延迟优化与架构选型
|
2天前
|
运维 负载均衡 关系型数据库
MySQL高可用解决方案演进:从主从复制到InnoDB Cluster架构
MySQL高可用解决方案演进:从主从复制到InnoDB Cluster架构
|
2天前
|
关系型数据库 MySQL 数据库
MySQL集群 双主架构(配置命令)
MySQL集群 双主架构(配置命令)
|
2天前
|
设计模式 容灾 关系型数据库
MySQL 主从复制架构
MySQL 主从复制架构
|
2天前
|
缓存 小程序
Java+saas模式 智慧校园系统源码MySQL5.7+ elmentui前后端分离架构 让校园管理更高效的数字化平台系统源码
智慧校园是在数字通增强版基础上,研发的一套面向教育行业的数字化校园软件,其显著特点是集学校网站、协同办公、即时通讯、网络空间、移动办公于一体。在满足教职工日常办公需要的同时,拥有诸多教育行业功能,并提供便捷易用的“家校通”平台以满足老师、学生、家长的日常交流。数字通智慧校园教育版中的协同办公、即时通讯、移动办公等功能模块随通用版一同改进,将网络办公最新技术应用到教育行业。
47 1
|
2天前
|
SQL 存储 缓存
mysql 逻辑架构
mysql 逻辑架构
|
2天前
|
canal 消息中间件 关系型数据库
【分布式技术专题】「分布式技术架构」MySQL数据同步到Elasticsearch之N种方案解析,实现高效数据同步
【分布式技术专题】「分布式技术架构」MySQL数据同步到Elasticsearch之N种方案解析,实现高效数据同步
102 0
|
2天前
|
架构师 算法 关系型数据库
数据库架构师之道:MySQL安装与系统整合指南
数据库架构师之道:MySQL安装与系统整合指南
51 0
|
2天前
|
存储 监控 关系型数据库
ELK架构监控MySQL慢日志
ELK架构监控MySQL慢日志
|
2天前
|
SQL 缓存 关系型数据库
从架构师角度全局理解Mysql性能优化
从架构师角度全局理解Mysql性能优化