Mysql八股

本文详细介绍了MySQL处理客户端请求的流程,从连接层的授权认证到SQL层的解析和优化,再到存储引擎的交互。同时,讨论了SQL注入的原理及预防措施,强调了参数化查询的重要性。此外,文章还探讨了视图的概念、优点及其在数据安全中的作用,并提供了提升索引使用效率的建议,包括选择唯一性索引和使用前缀索引等策略。

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

1.向 MySQL 发送一个请求的时候,MySQL 到底做了些什么

在这里插入图片描述
从数据库架构的角度:

  1. 连接层
    1)授权认证:在真正的操作之前,还需要调用用户模块进行授权检查,来验证用户是否有权限。通过后,连接线程开
    始接收并处理来自客户端的请求。
    用户模块所实现的功能,主要包括用户的登录连接权限控制和用户的授权管理。它就像 MySQL 的大门守卫一样,决
    定是否给来访者“开门”。
    在 MySQL 中,将客户端请求分为了两种类型:一种是 query(SQL 语句),需要调用 Parser(查询解析器)才能够
    执行的请求;一种是 command(命令),不需要调用 Parser 就可以直接执行的请求。
    2)连接处理:客户端同数据库服务层通过连接管理模块建立 TCP 连接,并请求一个连接线程。
    如果连接池中有空闲的连接线程,则分配给这个连接,如果没有,在没有超过最大连接数的情况下,创建新的连接线程负责这个客户端。
    连接管理模块负责监听对 MySQL Server 的各种请求,接收连接请求,转发所有连接请求到线程管理模块。
    每一个连接上 MySQL Server 的客户端请求都会被分配(或创建)一个连接线程为其单独服务。
    而连接线程的主要工作就是负责 MySQL Server 与客户端的通信࿰
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值