【MySQL架构】MySQL基础架构

本文详细介绍了MySQL的基础架构,包括连接器、查缓存、分析器、优化器、执行器和存储引擎六大组件的功能与工作原理,并深入探讨了不同存储引擎的特点及适用场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

MySQL基础架构

大体来说,MySQL可以分为 Server层存储引擎层 两部分。

  • Server层:涵盖MySQL的大多数核心服务功能,以及所有的内置函数(如日期、时间、数学和加密函数等)
    • 所有跨存储引擎的功能都在这一层实现,比如存储过程、触发器、视图等。
  • 存储引擎层:负责数据的存储和提取。其架构模式是插件式的,支持InnoDB、MyISAM、Memory等多个存储引擎。

在这里插入图片描述

不同的存储引擎共用一个Server层,也就是从连接器到执行器的部分。

一、连接器 - 建立连接,权限认证

连接器:负责跟客户端建立连接、获取权限、维持和管理连接。

# 连接命令
mysql -h 127.0.0.1 -P 3306 -u root -p
# 本机登录(省略 -h ip -P port)
mysql -u root -p

密码也可以直接跟在-p后面写在命令行中,但这样可能会导致你的密码泄露,所以不建议。

连接命令中的 mysql 是客户端工具,用来跟服务端建立连接。

连接服务包含 本地socket通信 和 基于客户端/服务端工具实现的类似TCP/IP的通信。

  • 主要完成一些类似于连接处理、授权认证及相关的安全方案

该层引入了线程池的概念,为通过安全认证接入的客户端提供线程。

同样在该层上可以实现基于SSL的安全链接。服务器也会为安全接入的每个客户端验证它所具有的操作权限。

在完成TCP握手后,连接器开始进行认证:

  • 用户名密码错误,会收到一个 “Access denied for user” 的错误,然后客户端程序结束执行。
  • 用户名密码正确,连接器会到权限表查出你拥有的权限(之后这个连接的权限判断,都依赖于此时读到的)

这就意味着,一个用户成功建立连接后,即使修改了权限,也不会影响已经存在的连接,只有重新连接才会生效。

连接完成后,如果你没有后续的动作,这个连接就处于空闲状态(Command列显示为Sleep

# 查看连接列表
show processlis
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

scj1022

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值