Mysql架构

接下来的一些文章会有关于在我看完《高性能Mysql》后的一些个人的偏见,如果有问题可以在评论区进行探讨,及时指出,我会看到并进行回复。我会去查我不太明白的一些知识并进行相应的解释,来让这些文章不那么的机械化,希望能更生动一些,帮助我和大家一起解决一些问题。(我也是小白)

逻辑架构

第一层主要是服务于客户端,去进行连接处理,身份验证,确保安全性这样子的一些操作。

第二层是主要的一些核心功能,包括查询解析,分析,优化,以及一些内置的函数(日期,时间,数学,加密函数),还有一些跨存储引擎(指同一数据库中可以同时使用不同的存储引擎) 的功能,像存储过程(开发者手动创建、持久化的 SQL 逻辑集合从而减少客户端与数据库的交互次数,用于提高Mysql的性能,使用时直接调用这个存储过程即可,并且是有名称,支持传入参数并且是永久存储在数据库中,重启后依然存在的),触发器(就是在一张表执行了某些操作后,由于事先编写了触发器,另一张表中的某些数据也会进行相应的改动,大概是这个意思),视图(封装了一些sql操作,不需要每次调用这一堆逻辑都去重写这一堆逻辑而是去调用视图,可以提高数据的安全性比如说减少暴露一些字段,也能够解偶业务和底层表结构)这些。

第三层是存储引擎层,就是负责数据的存储和提取。服务器是用过存储引擎的API进行通信的,API还屏蔽了不同存储引擎之间的差异,页包含了几十个底层函数,比如"开始一个事务"或者其它的一些操作。

连接管理与安全性

默认情况下,每个客户端连接都会在服务器进程中拥有一个县城,该连接的查询只会在这个单独的线程中执行,该线程会驻留在一个 内核或CPU中。服务器会维护一个缓冲区,存放就绪的线程,所以能够去减少频繁的创建和销毁线程带来的开销,这好像就是数据库连接池吧。

在客户端连接到Mysql服务器的时候,服务器也会对其进行身份验证,基于用户名,主机名和密码。

优化与执行

Mysql的解析查询会以创建内部数据结构(解析树),在此基础上去进行各种优化,比如说重写查询,决定表的读取顺序,选择合适的索引。用户可以通过特殊关键字向优化器传递提示,从而影响优化器的决策过程。也可以请求服务器解释优化的各个方面,能够让我们知道服务器是如何进行优化决策的。

优化器不关心表底层使用的是什么存储引擎,但存储引擎对于查询优化是有影响的。这个后面再具体展开介绍。

相关推荐
原来是猿5 分钟前
MySQL【用户管理】
数据库·mysql
Kel1 小时前
深入剖析 openai-node 源码:一个工业级 TypeScript SDK 的架构之美
javascript·人工智能·架构
毛骗导演2 小时前
@tencent-weixin/openclaw-weixin 插件深度解析(四):API 协议与数据流设计
前端·架构
毛骗导演2 小时前
@tencent-weixin/openclaw-weixin 插件深度解析(二):消息处理系统架构
前端·架构
EllenLiu2 小时前
架构演进与性能压榨:在金融 RAG 中引入条款森林 (FoC)
人工智能·架构
sthnyph2 小时前
初识MySQL · 库的操作
数据库·mysql
原来是猿2 小时前
MySQL【视图】
数据库·mysql
2401_873587823 小时前
MySQL——事务管理
数据库·mysql
guoji77883 小时前
2026年Gemini 3 Pro vs 豆包2.0深度评测:海外顶流与国产黑马谁更强?
大数据·人工智能·架构
殷紫川3 小时前
高并发系统性能优化全链路实战:端到端榨干系统性能,百万 QPS 零卡顿
性能优化·架构