MySQL 一次请求处理的处理流程

MySQL 逻辑架构以及请求处理

MySQL请求处理流程

image-20220329112122478

MySQL经典架构示意

image-20220329110624506

连接器(Connectors)

客户端访问MySQL服务器前,首先建立TCP连接。握手完成后,连接器开始通过用户名和密码进行身份验证。

  • 用户名或密码不对,会收到一个Access denied for user错误,客户端程序结束执行
  • 用户名密码认证通过,会从权限表查出账号拥有的权限与连接关联,之后的权限判断逻辑,都将依赖于此时读到的权限

TCP收到请求后,会从线程池中分配一个线程专门与请求客户端交互。连接都从线程池中获取线程,节省创建和销毁线程开销。

这意味着当用户权限修改后,不会影响已连接线程的权限。必须重新连接才能获取到新的权限设置

可以通过show processlistshow full processlist 查看当前用户占用的线程,如果是root用户可以看到所有用户的线程,show processlist只能列出当前100条。

建议看一下下面的官方介绍,很重要也很常用的命令。

show-processlist

SQL接口(SQL interface)

  • 接受用户的SQL命令,并且返回用户需要查询的结果

  • MySQL支持DML(数据操作语言)、DDL(数据定义语言)、存储过程、视图、触发器、自定 义函数等多种SQL语言接口

查询缓存(Caches & Buffers)

MySQL 5.7.20开始,不推荐使用查询缓存,并在 MySQL 8.0中删除 。

删除分析可以看一下 mysql-8-0-retiring-support-for-the-query-cache

分析器(Parser)

  • 在解析器中对 SQL 语句进行词法分析、语法分析。将SQL语句分解成数据结构,并将这个结构传递到后续步骤,以后SQL语句的传递和处理就是基于这个结构的。如果在分解构成中遇到错误,那么就说明这个SQL语句是不合理的。
    • 词法分析: 识别完整SQL语句中各个单词的关键字识别,例select关键字查询语句,from后面是表名
    • 语法分析: 根据语法规则判断输入的SQL语句是否满足MySQL语法
  • 在SQL命令传递到解析器的时候会被解析器验证和解析,并为其创建语法树,并根据数据字典丰富查询语法树,会验证该客户端是否具有执行该查询的权限。创建好语法树后,MySQL还会对SQL查询进行语法上的优化,进行查询重写。

优化器(Optimizer)

  • SQL语句在语法解析之后、查询之前会使用查询优化器确定SQL语句的执行路径,生成一个执行计划
  • 这个执行计划表明应该 使用哪些索引 进行查询(全表检索还是使用索引检索),表之间的连接顺序如何,最后会按照执行计划中的步骤调用存储引擎提供的方法来真正的执行查询,并将 查询结果返回给用户。

可以通过explain查看执行计划,通过Profiling检查各个步骤耗时。

发现没有命中意向生效的索引,此时可以基于optimizer trace 查看详细执行计划生成过程去分析。

执行器

根据优化器选择的执行方案,去调用存储引擎执行

  • 开始执行的时候,要先判断一下对这个表有没有执行查询的权限
    • 如果没有,就会返回没有权限的错误
    • 如果有权限,就打开表继续执行。打开表的时候,执行器就会根据表的引擎定义,去使用这个引擎提供的接口。

插件式存储引擎层( Storage Engines)

真正的负责了MySQL中数据的存储和提取,对物理服务器级别 维护的底层数据执行操作,服务器通过API与存储引擎进行通信。不同的存储引擎具有的功能不同。

基于 MySQL 8.0.26image-20220329134542587

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
(1)会员功能 1)预定管理 会员可以通过在线预约美甲师及服务。还可以取消预约,如果时间在设置的到店时间前30分钟,那么不能取消预约。如果同一个会员在记录中取消过5次以上预约订单,那么不允许再次预约。 2)信息查询 会员可以在网上查看美甲会所的介绍及地点,了解到本店会员的折扣以及会员日的活动,查看美甲款式以及美甲师的信息。 3)消费管理 会员可以对自己在这本店的消费历史进行查询,以及对订单付费或储值升级会员,更高级会员将在每对订单中享受更优惠的价格等。 4)投诉管理 会员可以在网上对本店服务进行投诉,投诉经由经理进行处理。 5)评价服务 会员可以在订单结束后对美甲师进行服务评价,其将被放置在美甲师的被评价信息模块中,以供后续其他顾客进行查看。 (2)美甲师功能 1)订单管理 根据会员选择的消费项目添加订单消费内容、调整消费内容。 2)预约查询 美甲师可以查看所有预约情况以及每个时间段预约的会员。 3)个人信息管理 编辑个人信息,包括联系方式、资历信息等;查询以及被评价的服务内容。 4)美甲项目查询:查询美甲项目以及其项目的库存和价格。 (3)经理功能 1)员工管理 为员工设置职责和权限。经理可以对新入职的进行添加账号,对离职的员工做离职处理。 2)统计管理 经理可以统计每个月收支情况,日收益等,以及美甲所需材料的库存情况。 3)美甲项目管理 录入和修改删除美甲项目的名称、编号和价格。 4)会员管理 根据会员消费总额的不同,对应不同的会员等级,实行会员制。不同的等级以及会员日的活动和礼品都有所不同。 5)投诉管理 经理可以根据顾客的投诉进行处理和回复。 6)公告管理 经理可以发布公告,修改以及删除公告。 (4)前台功能 1)收费管理 在线上预约或者线下服务的订单最后都需要在前台进行支付流程,前台可以查看此会员的订单内容以便收费管理。 2)会员管理 进店用户根据手机号自动办理为会员。可以为会员办理充值和退卡。普通会员 进行一定金额的储值后可以升级为高级会员, 3)预约管理 可以接受顾客的在线预约请求,也可以取消预定。
该资源是一个基于SSM框架(Spring、SpringMVC、MyBatis)开发的微信电子商城购物平台,并结合了小程序和Vue技术。下面是对该资源的技术介绍和使用功能的说明: 技术介绍: Spring:作为整个项目的核心框架,负责管理对象的生命周期、依赖注入等功能,提供了灵活的开发方式和强大的功能支持。 SpringMVC:作为Web层的框架,负责处理请求和响应,实现前后端分离,提高了代码的可维护性和可扩展性。 MyBatis:作为持久层框架,负责与数据库进行交互,简化了数据库操作的复杂性,提供了灵活的SQL编写方式。 微信小程序:使用小程序技术,可以在微信客户端上直接运行,无需下载安装,方便快捷。 Vue.js:作为前端框架,负责页面的展示和交互,提供了丰富的组件和指令,简化了前端开发流程。 使用功能: 商品浏览:用户可以在平台上浏览各类商品,包括查看商品详情、价格、库存等信息。 购物车:用户可以将心仪的商品添加到购物车中,方便一次性结算购买。 下单支付:用户可以选择购买的商品进行下单,并选择支付方式进行支付,支持微信支付等常见支付方式。 订单管理:用户可以查看自己的订单信息,包括订单状态、物流信息等,方便跟踪和管理订单。 用户管理:用户可以注册、登录、修改个人信息等,提供了良好的用户体验和安全性。 评论评价:用户可以对购买的商品进行评价和评论,分享自己的购物体验,帮助其他用户做出购买决策。 客服支持:平台提供在线客服功能,用户可以咨询问题、提出投诉等,得到及时的解答和支持。 总结: 该资源是一个基于SSM框架和小程序Vue技术开发的微信电子商城购物平台,具有商品浏览、购物车、下单支付、订单管理、用户管理、评论评价和客服支持等功能。通过使用这些技术和功能,可以实现一个高效、便捷、安全的在线购物平台,为用户提供良好的购物体验。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值