mysql 整体架构
mysql 一共分为四层,分别是网络层、服务层、存储引擎层、文件系统层,客户端 不属于 mysql_server 的范畴,它可以是各种变成语言,也可以是各种可视化工具,即一切能和 MySQLl server 连接成功的模块都为 “客户端”。
一、网络层。
-
mysql 使用 tcp/ip 来进行网络链接 理论上所有能访问 tcp/ip 的编程语言都可以与它进行连接
-
mysql 还支持使用 socket 进行连接 一般使用较少
连接流程
clientserver发起tcp请求 三次握手建立session 连接查询用户 鉴权鉴权成功 授权连接建立成功clientserver
连接之后
mysql 会安排一条线程维护当前的客户端连接,这条线程表示这当前连接正在进行什么工作 可以通过 show processlist 来查看当前正在运行的所有线程 默认已半双工的通讯机制进行工作,此外还有全双工和单工机制
-
Id:当前线程的 ID 值,可以利用这个 ID,使用 kill 强杀线程。
-
User:当前线程维护的数据库连接,与之对应的用户是谁。
-
Host:与当前线程保持连接关系的客户端地址(IP+Port)。
-
db:目前线程在哪个数据库中执行 SQL。
-
Command:当前线程正在执行的 SQL 类型,如: Create DB:正在执行创建数据库的操作。 Drop DB:正在执行删除数据库的操作。 Execute:正在执行预编译的 SQL(PreparedStatement)。 Close Stmt:正在关闭一个 PreparedStatement。 Query:正在执行普通的 SQL 语句。 Sleep:正在等待客户端发送 SQL 语句。 Quit:当前客户端正在退出连接。 Shutdown:正在关闭 MySQL 服务端。

本文深入探讨MySQL的整体架构,包括网络层、系统服务层、存储引擎层和文件系统层。网络层涉及TCP/IP连接和线程管理;系统服务层包含SQL接口、解析器、优化器和缓存;存储引擎层专注于数据操作;文件系统层涵盖日志模块和数据存储。通过理解这些层次,有助于优化数据库性能和管理。
最低0.47元/天 解锁文章
1175

被折叠的 条评论
为什么被折叠?



