Mysql之基本架构

MySQL的基本架构 MySql的基本架构示意图如下: 一、MySQL总体上可分为Server层和存储引擎层。 Server层包括连接器、查询器、分析器、优化器、执行器等,涵盖 MySQL 的大多数核心服务功能,以及所有的内置函数(如日期、时间、数学和加密函数等),所有跨存储引擎的功能都在这一层实现,比如存储过程、触发器、视图等。 存储引擎层负责数据的存储和提取。其架构模式是插件式的,支持 InnoDB、MyISAM... 阅读详情

1.Mysql简介

mysql是一种关系型数据库,由表结构来存储数据与数据之间的关系,同时为sql(结构化查询语句)来进行数据操作。

sql语句进行操作又分为几个重要的操作类型

DQL: Data Query Language 数据查询语句

DML: Data Manipulation Language 添加、删除、修改语句

DDL: Data definition Language 数据库结构操作

DCL:权限控制语句

TCL: 事务相关 比如commit/savepoint、rollback

对应关系数据库,就会有一个非关系型数据库,像redis这种key、value结构数据这种文档存储等等。redis可见博客Redis的数据类型及使用场景-优快云博客

那么关系型数据库相比非关系型数据有什么区别呢?

a. 关系型数据都是用表来进行维护的,所以格式一致,可以统一用sql语言来进行操作

b.关系型数据都是表结构,所以灵活度不够,操作复杂的海量数据性能比较差,所以我们才会有表结构、索引以及索引优化

c.虽然性能可能会比较慢,但是能做复杂的关联查询操作,比如一对一、一对多、多对一等

思考:Mysql属于关系型数据库的一种,为什么都喜欢用Mysql呢?说句很实在的话,因为开源(不要钱)。那么我们来看看官网是什么吹的What Is MySQL? | Oracle

相比于其它的关系型数据库,Mysql主要由以下几个优势:(跟其它主流的基本上都差不多)

大话来说就是,好用,易上手,稳定可靠,性能好,可扩展高可用,又安全又灵活

易用性: 开发者可以在几分钟内安装好 MySQL ,数据库易于管理。
可靠性: MySQL 是最成熟、使用最广泛的数据库之一。超过 25 年,它已经在各种场景中进行了测试,其中包括许多世界上最大的公司。由于MySQL 的可靠性,组织依赖 MySQL 来运行关键业务应用程序。
可扩展性: MySQL 可扩展以满足最常访问的应用程序的需求。 MySQL 的本机复制架构使 Facebook 等组织能够扩展应用程序以支持数十亿用户。
性能: MySQL HeatWave 比其他数据库服务更快且成本更低,多项标准行业基准测试证明了这一点,包括 TPC-H 、 TPC-DS 和 CH-benCHmark 。
高可用性: MySQL 为高可用性和灾难恢复提供了一套完整的本机、完全集成的复制技术。对于关键业务应用程序,并满足服务级别协议承诺,客户可以实现 零数据丢失以及秒级的故障转移恢复。
安全性: 数据安全需要保护和遵守行业和政府法规,包括欧盟通用数据保护条例、支付卡行业数据安全标准、健康保险可移植性和责任法案以及国防信息系统局的安全技术实施指南。MySQL 企业版提供高级安全功能,包括身份验证/ 授权、透明数据加密、审计、数据屏蔽和数据库防火墙。
灵活性: MySQL 文档存储为用户开发传统 SQL 和 NoSQL 无模式数据库应用程序提供了最大的灵活性。开发人员可以在同一个数据库和应用程序中混合和匹配关系数据和 JSON 文档。

2.Mysql架构

我们知道,我们写的一条sql语句是从客户端发起,到服务端处理,再由服务端返回数据,那么它经历了哪些模块或流程呢?

在Mysql架构中,主要分为2大模块,一个是服务层,一个是存储引擎层。服务层就是Mysql这个数据库服务提供的一些功能,比如跟客户端连接,分析sql语句等等;而存储引擎层更多的是Mysql一个插件,来负责数据的存储和查询方式

2.1 服务层

Mysql服务层负责从客户端接收sql语句,然后对sql语句进行解析,看sql语句是否正确,是否有权限操作。然后分析出来怎么去查看更好,知道怎么查询了后就去调用存储引擎相关的接口实现,返回数据。服务层主要分为以下几个模块:

2.1.1连接器

首先,我们得连接客户端,那么Mysql里面就有一个连接层,我们来看下连接层相关的变量:

show status like 'Max_used_connections%'

max_used_connections:自服务启动以来最大的连接数

max_used_connections_time 达到这个峰值的时间

-- 最大的连接数,超过该值不允许建立连接,默认151,最小1 最大100000
select @@max_connections;
-- 查询超时时间,毫秒为单位
select @@max_execution_time;
set @@GLOBAL.max_connections=5; -- 设置最大线程数
set @@GLOBAL.max_execution_time=1000; -- 更改会话的查询超时时间为1S 更改后 对新起的会话生效
select * from t_work_order; -- 查询超过1s的数据会报错

连接器的参数有助于我们排查生产问题,比如我们的CPU超高,系统卡了,那么我们就可以查看一下当前用户正在运行的线程:

show full processlist;

字段解析:

user: 操作的用户名

host: 地址

db: 操作的db

command: 当前连接执行的命令 休眠 查询  sleep为空闲连接

time: 这个状态持续的时间;单位是s

state: 状态

info: 线程正在执行的语句,如果线程没有执行语句,则为NULL

如果遇到查询很慢,甚至由于IO阻塞导致了CPU消耗过高怎么解决?

-- 1.查看当前线程
show processlist;
-- 2. 关闭查询query
KILL query 2280; -- 终止上面查询时间过长的id
-- 3. 杀死连接 connection
KILL 2280;


2.1.2 解析器

当成功建立连接后,就开始解析sql语句,会把一条sql语句解析成一颗语法树,看是否符合我们的sql语法,主要分为词法解析和语法解析

词法解析:将 sql 语句打碎,转化成一个一个关键单词,然后交给语法解析器去构建语法树,判断语法是否正确
语法解析: 语法解析已经知道每个 sql 语句的单词了,那么在语法解析的时候,会去检 查语法是否正确,比如, where 是不是写出 where1,from 写成from1.表名、列名是否存在、用户是否有操作权限等等
下面为一个示例:

2.1.3 预处理

什么是预处理,预处理是对解析后的sql进行一定的前置处理,进行提效的。预处理主要有以下两个好处。

1.每次执行语句时解析语句的开销更少。通常,数据库应用程序处理大量几乎相同的语句,仅更改WHERE 查询和删除、 SET 更新和 VALUES 插入等子句中的文字或变量值。
2.防止 SQL 注入攻击。参数值可以包含未转义的 SQL 引号和定界符。

2.1.4 优化器

根据上面的处理,我们已经知道了要执行一个什么样的语句,但是具体怎么执行也会有很多的方式,比如走哪个索引,语句是不是可以优化,做哪种优化,那种执行方式、路径更快呢?

Mysql提供了一些优化器可供选择,通过全局变量optimizer_switch来决定

select @@GLOBAL.optimizer_switch

优化器说明官网:MySQL :: MySQL 8.0 Reference Manual :: 10.9.3 Optimizer Hints

优化方式、优化器实践官网: MySQL :: MySQL 8.0 Reference Manual :: 10 Optimization

优化器会生成一个最终的执行计划,所以这个语句到底怎么走,优化器来决定。

2.1.5    执行器

根据相应的执行计划,去调用数据存储的地方,也就是来到了我们的存储层。执行器会去根据表设置的存储引擎,调用不同存储引擎的API接口获取数据。

至于这个数据怎么存的,这个数据有哪些优化(比如内存去缓存等),就是每个存储引擎自己去做的事情了。并且存储引擎和mysql是解耦的。

执行器的主要职责就是去查询数据,并且把查询结果组装返回,是Mysql与存储引擎的交互方。比如没有索引,就会去扫描全表的数据,一条一条判断是否满足条件。如果有索引,就会走索引树,减少扫描数量。

2.2 存储引擎层

存储层是数据真正存储的地方。Mysql支持不同的存储引擎,这些存储引擎决定了我们数据的存储方式,以及数据的可靠性、一致性、持久性、原子性。也就是我们经常讲的ACID。

有些存储引擎支持ACID,有些存储引擎不支持ACID,有些存储引擎为了性能,有些存储引擎是为了数据的一致性。

那么官网提供了哪些存储引擎: MySQL :: MySQL 8.0 Reference Manual :: 18 Alternative Storage Engines

如何查询当前服务器支持哪些存储引擎呢?

那么存储引擎之间有什么区别呢? 我们根据查出来的信息谈谈InnoDB与MyIASM的区别:

Innodb: 支持事务 ;行级锁 ;支持外键

Myiasm: 不支持事务;仅支持表级锁;不支持外键

有关索引的差异我们后面会提到

【现代信号处理】01 -概率论与随机过程回顾 概率论与随机过程回顾 文章目录概率论与随机过程回顾1. 统计模型的相关概念1.1 统计实验(不确定性)1.2 样本点1.3 样本空间Ω1.4 概率1.5.统计模型是先验的2. 概率和统计的差异2.1 联系2.2 差异2.3.1 概率和统计问题的三要素2.3.1.1 model-模型2.3.1.2 data-数据2.3.1.3 decision-决策2.3.2 关系图3. 样本空间的重要性3.1 贝朗特悖论3.1.1 解法一3.1.2 解法二3.1.3 解法三3.2 结论4.概率相关的概念4.1 随机变量4. 阅读详情

相关推荐

UE5新手必看:3种UI定位方法实战(含蓝图配置截图)

本文为UE5新手详细解析了三种核心UI定位方法:屏幕空间、场景空间和世界空间。通过实战蓝图配置与控件操作,指导开发者如何根据HUD、角色血条、3D物体标记等不同应用场景,正确选择并配置UI的定位方式,以实现清晰的信息传递与沉浸式体验。

weixin_29018815的博客 473

mysql基本架构

mysql基本架构

Albert__Einstein的博客 6625

无线图像传输新突破:深度JSCC算法在低带宽环境下的性能实测

本文深入探讨了基于深度学习的信源信道联合编码(JSCC)算法在低带宽无线图像传输中的突破性表现。通过实测数据对比,深度JSCC在低信噪比环境下展现出卓越的鲁棒性,有效对抗传统方案的“悬崖效应”,实现图像质量的平滑下降,为远程医疗、工业巡检等严苛场景提供了新的解决方案。

weixin_29090089的博客 507

【MySQL基础】MySQL基础:MySQL基本操作与架构

【MySQL学习】关于mysql的基础知识,重点在于对mysql架构的了解!!

2301_80220607的博客 4467

航空大数据——项目资源汇总及开源(四)

ADS-B项目开源大礼包

cyc头发还挺多的博客 4986

pynq-z2 HLS开发

定制Overlay一.用HLS生成一个定制IP功啊啊是合理的创建标题,有助于目录的生成如何改变是式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入 一.用HLS生成一个定制IP ...

qq_38769280的博客 4156

通用:MySQL基本架构

MySQL的分层架构是其灵活性与高性能的核心保障:客户端层提供多样化交互方式,服务层实现统一的SQL处理逻辑,存储引擎层适配不同业务场景,物理存储层确保数据持久化。理解各层的作用与协作机制,不仅能帮助我们排查SQL性能问题(如通过EXPLAIN分析优化器决策),还能指导我们根据业务需求选择合适的存储引擎(如事务场景选InnoDB,只读场景选MyISAM)。掌握MySQL架构原理,是从"会用"到"用好"MySQL的关键一步,也是数据库性能优化的基础。▲如有纰漏,烦请指正~~

weixin_45149504的博客 895

用 ABAP OAuth 2.0 Client 直连 SAP SuccessFactors:从体系到落地的一条龙实践指南

ABAP SMI允许在后端对外部服务的OData端点进行定义与自定义化配置,并以受信连接的方式暴露给ABAP应用调用。它并不替代OAuth,而是扮演端点与自定义参数的集中化定义者,最终认证依旧由完成。对于需要在ABAP后端发起临时或补充型OData调用的场景,SMI是一个轻量而清晰的集成入口。scope的客户端应用已经完成注册,API DomainCompany ID、证书或密钥都已归档。ABAP的Profile与Client已建立并绑定,OA2C_GRANT可见绿色访问状态。SMI。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 286

mysql基本架构_MySQL的基本架构

MySQL的基本架构发布时间:2019-02-16 23:35,浏览次数:178, 标签:MySQLMySql的基本架构示意图如下:一、MySQL总体上可分为Server层和存储引擎层。Server层包括连接器、查询器、分析器、优化器、执行器等,涵盖 MySQL的大多数核心服务功能,以及所有的内置函数(如日期、时间、数学和加密函数等),所有跨存储引擎的功能都在这一层实现,比如存储过程、触发器、视图...

weixin_31036949的博客 184

基于STM32、HAL库的MCP4013T-103E/CH 数字电位器驱动程序设计

define MCP4013_I2C_ADDR (0x5F << 1) // HAL库使用7位地址左移1位,或直接使用0xBE/0xBF。#include "i2c.h" // 包含你的I2C初始化相关的头文件,例如由CubeMX生成的 i2c.h。大于127的值会被截断。// MCP4013的读操作:主机发起读取请求,从机返回当前滑片位置的一个字节。// 使用HAL_I2C_Master_Transmit直接发送数据。// 使用HAL_I2C_Master_Receive读取一个字节。

corlin6688的博客 127

KEPServerEX 6 之驱动协议(UDD)实战 HTTP协议对接OpenWeatherMap天气 API全流程指南

本文分享了基于 KEPServerEX 6 的通用设备驱动(UDD)对接OpenWeatherMap天气API的实战方案。该方案针对工业物联网场景进行了深度优化,具有动态城市切换、运行时热配置、老旧JS引擎兼容等核心特性。文章详细介绍了从环境准备、脚本部署到Tag配置的全流程,重点解析了Legacy JS语法适配、Float类型安全处理等关键实现细节,并提供了完整的避坑指南和故障排查方法。该方案经过生产环境验证,可稳定实现气象数据采集与动态切换功能,适用于SCADA/MES系统集成场景。

-雲飛兄-博客 715

MySQL基本架构图

学亮编程手记 731

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

MySQL / 基本架构介绍

目录 一、基本架构图 二、连接器 三、查询缓存 四、分析器 五、优化器 六、执行器 一、基本架构图 二、连接器 1、与 Client 进行三次握手建立连接。指令如下: mysql -h (ip) -P (port) -u (username) -p 若账号密码错误,则报如下错误: Access denied for user 连接若不存在交互,时间超过 wait_...

布袋和尚 203

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

mysql架构_MySQL 的基本架构示意图

MySQL 的基本架构示意图MySQL 可以分为 Server 层和存储引擎层两部分。serverServer 层包括连接器、查询缓存、分析器、优化器、执行器等,涵盖 MySQL 的大多数核 心服务功能,以及所有的内置函数(如日期、时间、数学和加密函数等),所有跨存储引 擎的功能都在这一层实现,比如存储过程、触发器、视图等。存储引擎存储引擎层负责数据的存储和提取。其架构模式是插件式的,支持 Inn...

weixin_36194965的博客 211

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

mysql基本架构_MySQL的基础架构

MySQL的基本架构示意图MySQL的逻辑架构图从图中可以知道,MySQL可以分为两部分:server层和存储引擎层。并且不同的存储引擎共用一个Server层,也就是从连接器到执行器的部分。server层包含如下的五部分:连接器、查询缓存、分析器、优化器、执行器等,涵盖MySQL的大多数核心服务功能,以及所有的内置函数,所有跨存储引擎的功能都在该层实现,如存储过程、触发器、视图等,不过MySQL ...

weixin_35761085的博客 100

MySQL 是什么?它的基本架构和工作原理

MySQL是一个开源的关系型数据库管理系统(RDBMS),由Oracle公司维护。它使用结构化查询语言(SQL)进行数据库的管理和操作,并广泛用于 Web 开发、企业应用、数据仓库等领域。由于其高性能、可靠性、易用性和社区支持,MySQL 成为世界上最流行的数据库之一。MySQL是一款功能强大的关系型数据库,广泛应用于 Web 开发、企业管理系统、数据仓库等多个领域。存储引擎:负责数据的存储和检索。查询解析与优化:通过优化器选择最优的查询执行计划。事务管理与锁机制:保证数据的一致性和高效的并发操作。

2201_75863687的博客 716

mysql 架构名_MySQL基本架构

MySQL基本架构图连接器1.负责和客户端建立连接,获取权限,维持和管理连接用户名密码验证查询权限信息,分配对应的权限可以使用show processlist查看现有的连接wait_timeout默认8小时,超时会断开连接2.连接分为两类长连接:推荐使用,但是要周期性的断开长连接短链接:一次执行完毕就关闭,比较消耗资源查询缓存1.当执行查询语句的时候,会先去查看缓存中的结果,之前执行过的SQL语句...

weixin_31307347的博客 186

01.MySQL基本架构

本文参考极客时间专栏 MySQL45讲 基本架构图 MySQL主要分为Server层和存储引擎层两部分。 Server层包括连接器、查询缓存、分析器、优化器、执行器,涵盖MySQL的大多数核心服务功能,并且包含所有的内置函数(如日期、时间、数学和加密函数等),所有跨存储引擎的功能都在这一层实现,比如存储过程、触发器、视图等。 存储引擎层负责数据的存储和提取。支持InnoDB、MyISAM、Memory等多个存储引擎。MySQL从5.5.5版本开始成为默认存储引擎。 连接器 客户端与服务端.

小超人的知识体系 684

MySQL 的基本架构示意图

MySQL 的基本架构示意图 MySQL 可以分为 Server 层和存储引擎层两部分。 server Server 层包括连接器、查询缓存、分析器、优化器、执行器等,涵盖 MySQL 的大多数核 心服务功能,以及所有的内置函数(如日期、时间、数学和加密函数等),所有跨存储引 擎的功能都在这一层实现,比如存储过程、触发器、视图等。 存储引擎 存储引擎层负责数据的存储和提取。其架构模式是插件式的,支持 InnoDB、 MyISAM、Memory 等多个存储引擎。现在最常用的存储引擎是 In...

marcushbs的博客 464

MySQL 基本架构图

MySQL 基本架构图 MySQL 主要分为两层Server层与存储引擎层(innodb)两部分 Server层包括连接器、查询缓存、分析器、优化器、执行器等,涵盖MySQL的大多数核心服务功能,以及所有的内置函数(如日期、时间、数学和加密函数等),所有跨存储引擎的功能都在这一层实现,比如存储过程、触发器、视图等。 而存储引擎层负责数据的存储和提取。其架构模式是插件式的,支持InnoDB、MyISAM、Memory等多个存储引擎。现在最常用的存储引擎是InnoDB,它从MySQL 5.5.5版本开始成为

weixin_43897490的博客 1071

mysql 基本架构

大体来说,MySQL 可以分为 Server 层和存储引擎层两部分。 Server 层包括连接器、查询缓存、分析器、优化器、执行器等,涵盖 MySQL 的大多数核心服 务功能,以及所有的内置函数(如日期、时间、数学和加密函数等),所有跨存储引擎的功能都 在这一层实现,比如存储过程、触发器、视图等。 而存储引擎层负责数据的存储和提取。其架构模式是插件式的,支持 InnoDB、MyISAM、 Memo...

qq_29827369的博客 201

MySQL數據庫開發教學(一) 基本架構

本文介绍了MySQL数据库的基础知识,包括数据库概念、MySQL服务端架构、常用工具和数据类型。主要内容有:1)关系型数据库的基本概念和名词解释;2)MySQL的四层架构体系;3)配置MySQL环境的工具(phpstudy2018、Navicat等);4)MySQL默认的三个系统数据库及其功能;5)详细的数据类型分类(数值、浮点、日期时间、字符串等)。

小楓的博客 1549

MySQL 基本架构

MySQL 基本架构: 从图中可以看出,分为服务器层、跟存储引擎层两部分: 一、服务器层: 连接器: 管理连接、权限验证 连接器负责跟客户端建立连接,获取权限,维持,管理连接: mysql -h$ip -p$port -u$user -p 在命令中mysql是客户端工具,用来跟服务器端建立连接,在完成经典的TCP握手后,连接器就开始认证身份,输入用户、密码进行登录: 查看连接状态: sho...

Fe_cow的博客 353
上一篇: Dubbo生态之dubbo功能
下一篇: Mysql之Innodb存储引擎
山河小帅
博客等级 码龄7年 732粉丝 61原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值