当前位置:首页 > 生活百科

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

栏目:生活百科日期:2025-03-16浏览:0

前言

目前大部分的后端开发人员对MySQL的理解可能停留在一个黑盒子阶段。

对MySQL基本使用没什么问题,比如建库、建表、建索引,执行各种增删改查。

所有很多后端开发人员眼中的MySQL如下图所示

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

然后跟着博客捣鼓就解决了,可能自己都没搞明白里面的原理。

为了解决这种知其然而不知其所以然的问题,阿星的重学MySQL系列会带着大家去探索MySQL底层原理的方方面面。

这样大家碰到MySQL的一些异常或者问题时,能够直戳本质,快速地定位解决。

连接管理

系统(客户端)访问MySQL服务器前,做的第一件事就是建立TCP连接。

经过三次握手建立连接成功后,MySQL服务器对TCP传输过来的账号密码做身份认证、权限获取。

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

接着我们来思考一个问题

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

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

当然不是,多个系统都可以和MySQL服务器建立连接,每个系统建立的连接肯定不止一个。

所以,为了解决TCP无限创建与TCP频繁创建销毁带来的资源耗尽、性能下降问题。

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

TCP连接收到请求后,必须要分配给一个线程去执行,所以还会有个线程池,去走后面的流程。

这些内容我们都归纳到MySQL的连接管理组件中。

所以连接管理的职责是负责认证、管理连接、获取权限信息。

解析与优化

经过了连接管理,现在MySQL服务器已经获取到SQL字符串。

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

去缓存中获取,命中缓存,直接返回结果(返回前需要做权限验证),未命中执行后面的阶段,这个步骤叫查询缓存

需要注意,select SQL字符串要完全匹配,有任何不同的地方都会导致缓存不被命中(空格、注释、大小写、某些系统函数)。

小贴士:虽然查询缓存有时可以提升系统性能,但也不得不因维护这块缓存而造成一些开销,从MySQL 5.7.20开始,不推荐使用查询缓存,并在MySQL 8.0中删除。

没有命中缓存,或者非select SQL就来到分析器阶段了。

因为系统发送过来的只是一段文本字符串,所以MySQL服务器要按照SQL语法对这段文本进行解析。

如果你的SQL字符串不符合语法规范,就会收到You have an error in your SQL syntax错误提醒

通过了分析器,说明SQL字符串符合语法规范,现在MySQL服务器要执行SQL语句了。

MySQL服务器要怎么执行呢?

你需要产出执行计划,交给MySQL服务器执行,所以来到了优化器阶段。

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

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

截止到现在,还没有真正去读写真实的表,仅仅只是产出了一个执行计划。

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

开始执行的时候,要先判断一下对这个表有没有相应的权限,如果没有,就会返回权限错误。

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

存储引擎API只是抽象接口,下面还有个存储引擎层,具体实现还是要看表选择的存储引擎。

讲到这里,上面提到的查询缓存、分析器、优化器、执行器都可以归纳到MySQL的解析与优化组件中。

所以解析与优化的职责如下:

缓存SQL语法解析验证SQL优化并生成执行计划根据执行计划调用存储引擎接口

其中连接管理解析与优化处于MySQL架构中的Server层。

小结

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

MySql架构分为Server层与存储引擎层。

连接管理、解析与优化这些并不涉及读写表数据的组件划分到Server层,读写表数据而是交给存储引擎层来做。

通过这种架构设计,我们发现Server层其实就是公用层,存储引擎层就是多态层,按需选择具体的存储引擎。

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

阿星最后以一张MySQL简化版的架构图结束本文,我们下期再见~

站在巨人的肩膀上:

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

关于我

阿星是一个热爱技术的 Java 程序猿,公众号 「程序猿阿星」 定期分享有趣有料的精品原创文章!

非常感谢各位小哥哥小姐姐们能看到这里,原创不易,文章有帮助可以关注、点个赞、分享与评论,都是支持(莫要白嫖)!

“mysql认证都有什么(mysql数据库图形化界面)” 的相关文章

ie浏览器修复命令(修复ie浏览器的方法)

我也碰到过这个情况,当时还纳着闷如果你使用过IE浏览器,则应该会遇到这样一种情况:IE浏览器会自动创建”链接”文件夹,即使你手动删除了,它隔一段时间又会自己重建...

互动式营销强调的是什么,简述互动营销的渠道与特点

互联网时代已经不是一个新鲜的时代代名词,现在是移动互联网时代,大数据时代。微商城从集中变成了一个非集中,变成了一个去中心化的特征。只要我们的产品足够好,用户体验...

如何恢复微信好友,30秒帮你快速找回微信好友

微信怎么恢复好友?微信已经成为了我们生活中必不可少的一部分,在平常的交际活动和商务活动中,能要到对方的微信号码已经成为双方互相接纳和认可的重要开始。但是在日常生...

刻盘怎么刻进光盘,(刻录光盘的方法和步骤)

保存数据的方法有千万种,我独选刻录光盘这一种,虽然光盘也有坏掉的风险,但只要好好存放,使用光盘存储也有它独有的优势,比如更加安全、容易分类、分担硬盘存储空间。如...

2023微信转账收费标准(最新微信转账新规定)

最近有不少小伙伴问这个问题,关于微信、支付宝做账标准,国家税务总局其实早有政策明确规定,今天再给各位会计朋友复习一下。先看看微信收款如何做账千万不要做错了微信、...

创意广告文案分享,这些广告文案绝对让你过目不忘

1.切勿酒后斗牛——洗衣粉广告这是斗牛士与公牛之间的一场新式决斗,目的是为了验证一种新型洗衣粉的速效去污能力。一边,斗牛士手持一瓶红酒,对着绳子上挂的一块白布,...

专业网络推广哪个好,网络推广热门行业

网络推广的方法常见有以下几种:1、搜索引擎推广SEM是SearchEngineMarketing的缩写,中文意思是搜索引擎推广。SEM是一种新的网络推广形式。S...

seo是什么东西,带你了解seo的基础知识

SEO是什么?SEO该何入门呢?  例如利用百度等搜索引擎搜索某一东西,网页上就会出现很多网站,SEO就是将对企业有利的网站排在前面的技术。想要学习SEO就要先...

买卖机械网遭遇DDos攻击:损失3.2万元CDN防护费!

近日,买卖机械网站长爆料,DDos攻击这帮人,越来越猖狂,业内大量B2B网站遭遇DDos攻击,自家网站不到四个小时内损失3.2万元CDN防护费!从买卖机械网站长...

aso优化的主要内容是什么,大神教你从零开始学aso优化

ASO是提升APP在各个应用市场排行榜(榜单排名)和搜索结果(关键词)排名的过程。ASO日常工作中,需重点关注榜单和关键词的排名变化。APP通过ASO获得更多流...