mysql认证都有什么 mysql数据库图形化界面

序目前大部分后端开发者对MySQL的理解可能还停留在黑箱阶段。MySQL的基本使用没有问题,比如建立数据库,表,索引,进行各种增删改。很多后端开发者眼中的MySQL如下图所示。在实际工作中遇到MySQL中死锁异常、SQL性能差、异常报错等问题时,直接进行百度搜索。然后就按照博客...

目前大部分后端开发者对MySQL的理解可能还停留在黑箱阶段。

MySQL的基本使用没有问题,比如建立数据库,表,索引,进行各种增删改。

很多后端开发者眼中的MySQL如下图所示。

在实际工作中遇到MySQL中死锁异常、SQL性能差、异常报错等问题时,直接进行百度搜索。

然后就按照博客解决了,可能是我不懂原理。

要解决知其然而不知其所以然的问题,阿星的再学MySQL系列将带你探索MySQL底层原理的方方面面。

这样当你在MySQL中遇到一些异常或问题时,可以直接戳中本质,快速定位解决。

连接管理

在系统(客户端)访问MySQL服务器之前,首先要做的就是建立TCP连接。

三次握手连接成功后,MySQL服务器对TCP传输的账号密码进行认证,获得权限。

用户名或密码不对,会收到一个Access denied for user错误,客户端程序结束执行

用户名密码认证通过,会从权限表查出账号拥有的权限与连接关联,之后的权限判断逻辑,都将依赖于此时读到的权限

那我们来思考一个问题。

一个系统只会和MySQL服务器建立一个连接吗?

只能有一个系统与MySQL服务器建立连接吗?

不可以,当然多个系统都可以和MySQL服务器建立连接,每个系统都必须建立一个以上的连接。

所以为了解决TCP无限创建和频繁创建销毁带来的资源枯竭和性能下降问题。

MySQL服务器中有专门的TCP连接池来限制连接数,使用长连接模式复用TCP连接来解决上述问题。

TCP收到请求后,必须分配给一个线程来执行,所以会有一个线程池来遵循下面的流程。

所有这些内容都在MySQL的连接管理组件中进行了总结。

因此连接管理的职责是负责认证、连接管理和访问授权信息。

分析和优化

在连接管理之后,MySQL服务器现在已经获得了SQL字符串。

如果是查询语句,MySQL服务器将使用select SQL字符串作为键。

从缓存中获取,命中缓存,直接返回结果(返回之前需要进行权限验证)。未命中执行的后期阶段称为查询高速缓存

注意select SQL字符串要完全匹配,任何差异都会导致缓存丢失(空 case,comments,case,一些系统函数)。

提示:虽然查询缓存有时可以提高系统性能,但是由于维护这个缓存,它也必须引起一些开销。从MySQL 5.7.20开始,不建议使用查询缓存,在MySQL 8.0中被删除。

没有缓存命中,或者非选择SQL进入分析器阶段。

因为系统只发送一个文本字符串,所以MySQL服务器应该根据SQL语法解析这个文本。

如果您的SQL字符串不符合语法规范,您将收到一条错误警告,指出您的SQL语法中有错误。

解析器显示SQL字符串符合语法规范,现在MySQL服务器将执行SQL语句。

如何执行MySQL服务器?

你需要输出执行计划,交给MySQL服务器执行,于是就到了优化器阶段。

优化器不仅仅是生成一个执行计划那么简单,它还会帮助你在这个过程中优化SQL语句。

外连接转换为内连接、表达式简化、子查询转换为连接、连接顺序、索引选择等等,优化的结果就是执行计划。

到现在为止,我们还没有真正的读***正的表,只是产生了一个执行计划。

于是我们进入了executor阶段,MySQL服务器终于要执行SQL语句了。

在开始执行的时候,需要判断这个表上是否有相应的权限。否则,它将返回一个权限错误。

如果有权限,调用存储引擎API根据执行计划读写表。

存储引擎API只是一个抽象接口,下面还有一个存储引擎层。具体实施取决于表中选择的存储引擎。

至此,上面提到的查询缓存、分析器、优化器和执行器都可以概括为MySQL的解析和优化组件。

因此分析和优化的职责如下:

缓存

SQL语法解析验证

SQL优化并生成执行计划

根据执行计划调用存储引擎接口

其中连接管理解析和优化在MySQL架构的服务器层。

总结

在学习任何知识之前,不要急于进入细节,而是先了解大致脉络,有全局观,再深入相关细节。

MySql架构分为服务器层和存储引擎层。

连接管理、解析和优化这些不涉及读写表数据的组件被划分到服务器层,读写表数据改为由存储引擎层完成。

通过这个架构设计,我们发现服务器层其实是公共层,存储引擎层是多态层,可以根据需要选择具体的存储引擎。

仔细想想,和模板方法设计模式一模一样。它们的执行流程是固定的,Servce层等于通用模板函数,存储引擎层等于抽象模板函数,可以按需子类化。

阿星最后以一个简化的MySQL架构图结束本文。下次见~

站在巨人的肩膀上:

《MySQL实战45讲》《从零开始带你成为MySQL实战优化高手》《MySQL是怎样运行的:从根儿上理解MySQL》《MySQL技术Innodb存储引擎》

关于我

阿星是一个热爱技术的Java成人。微信官方账号“程徐苑阿星”定期分享有趣原创文章!

非常感谢小兄弟姐妹们看到这一幕。原创不容易。有帮助的文章可以关注,赞,分享,评论。他们都是支持的(不要问白嫖)!

本文来自心已碎♂无心醉投稿,不代表舒华文档立场,如若转载,请注明出处:https://www.chinashuhua.cn/24/564171.html

打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
() 0
上一篇 05-26
下一篇 05-26

相关推荐

  • 进入路由器设置页面 电脑进入路由器设置界面

    1。连接线将运营商的宽带网线连接到路由器的WAN口或WAN/LAN口。线路连接后,如果WAN口对应的指示灯不亮,说明线路连接有问题。请检查以确保网络电缆连接牢固,或者尝试更换另一根网络电缆。2。设置路由器上网(1)查看路由器底部标签上的路由器出厂监听信号名称。(2)打开定位器

    2023-07-29 08:52:01
    206 0
  • 被微信好友删除的状态是什么样(被微信好友删除的界面)

    朋友们,今天我想和你们分享一个小技巧。平时肯定能用!就是如何判断微信好友是否删除了自己?相信大家的微信都有很多不经常联系的朋友。有时候打开对方的朋友圈,除了一条线什么都没有。这种情况不一定是因为对方删了我们,也可能只是屏蔽了。那么如何在没有给对方发消息的情

    2023-07-29 07:46:01
    194 0
  • win11卡在登陆界面解决教程

    1如果我们卡在用户名界面,那么需要强制重启电脑并重新进行安装安装引导进入如下界面的时候,选择上方的“为个人使用进行设置”2然后在这里选择“登录选项”如图所示3接着在其中选择使用离线账号登录4接着选择。win11卡在登录界面解决方法1重启电脑的时候,同时按住键盘上的S

    2023-07-27 01:24:01
    290 0
  • 苹果下拉界面怎么加东西

    核心答案要点:苹果下拉界面加东西需要在手机设置的控制中心中进行添加。以手机iPhone12为例,苹果下拉界面加东西的步骤分为2步。具体操作如下 苹果下拉界面加东西需要在手机设置的控制中心中进行添加。以手机iPhone 12为例,苹果下拉界面加东西的步骤分为2步。具体操作如下

    2023-07-25 16:28:01
    953 0

评论列表

联系我们

在线咨询: QQ交谈

邮件:admin@qq.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信