数据库原理与应用基础(MySQL)_交互装置工作原理

数据库原理与应用基础(MySQL)_交互装置工作原理MYSQL数据交互原理与性能问题分析

大家好,又见面了,我是你们的朋友全栈君。

我们在性能测试监控MYSQL数据库时,作为专业非功能性测试人员,我们需要了解操作系统工作原理、业务实现架构逻辑、应用架构实现逻辑、数据库工作原理,才能真正的做好非功能性测试,而大部分业务型交易问题都是因为数据库问题原因产生的性能瓶颈,而更多数情况都是因为对数据库出现问题的情况和处理思路不清晰。在进行MySQL的优化之前必须要了解的就是MySQL的查询过程,也就是实际前端业务操作到从磁盘捞取数据整个实现过程如果运作,了解了这些,明白查询优化是遵循MySQL优化器方式运行,具体如下图:

MYSQL数据交互原理与性能问题分析
根据上图所示我们了解到,无论是手机端还是PC端,例如我们点餐系统,通过APP客户端,我们查询要点的餐饮,这时通过网络连接同数据库服务层建立TCP连接。

读写数据方式
1、步骤一与数据库连接建立:
连接管理模块会建立连接,并请求一个连接线程。如果连接池中有空闲的连接线程,则分配给这个连接,如果没有,在没有超过最大连接数的情况下,创建新的连接线程负责这个客户端。

2、步骤二检查语法
接下来验证用户是否有权限。例如你有注册,查看该用户是会员用户,方可提供点餐服务,连接线程开始接收并处理来自客户端的SQL语句。连接线程接收到SQL语句之后,将语句交给SQL语句解析模块进行语法分析和语义分析。

3、步骤三检查缓存
如果是查询语句,则可以先看查询缓存中是否有结果,如果有结果可以直接返回给客户端。

4、步骤四检查引擎优化
如果查询缓存中没有结果,就需要真的查询数据库引擎层了,于是发给SQL优化器,进行查询的优化。就是请求数据库引擎层,打开表,接下来的处理过程就到了数据库引擎层,例如InnoDB。

5、步骤五,数据读取方式
在数据库引擎层,要先查询缓存是否有数据,如果有直接返回,如果没有就要从磁盘上去读取,把磁盘中找到相应的数据加载到缓存中,下次读取直接从缓存读取从而使得后面的查询更加高效。

6、步骤六,关闭连接
获取数据后返回给客户端,关闭连接,释放连接线程,过程结束。

性能问题分析:
如果语法写的有问题,则在从磁盘捞取数据时会出现磁盘IO高或者CPU高,那就是语法写法问题或者索引使用问题,如果语法分析没问题,则看缓存页配置是否太小了,或者本身物理内存就小,给缓存的空间就少了。

转载于:https://blog.51cto.com/372550/2395431

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/106821.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • IOS-switch循环

    IOS-switch循环//Createdbymacon2021/11/12.//#import”ViewController.h”@interfaceViewController(){UILabel*lb;inti;}@end@implementationViewController-(void)viewDidLoad{[superviewDidLoad];//Doanyadditionalsetupafterloading.

    2025年6月5日
    2
  • System.setProperty(),System.setProperty

    System.setProperty(),System.setPropertySystem.getProperties()获得所有的系统变量System.getProperty(“os.name”)获取指定的系统变量(获取系统=windows8.1)System.setProperty(“koow”,”123″)储存在系统变量中,变量名为koow,值为123System.getProperty(“koow”)获取指定的系统变量(获取koow=12

    2022年7月12日
    20
  • vue路由传参的两种方式的区别_vue路由跳转获取参数

    vue路由传参的两种方式的区别_vue路由跳转获取参数vue路由传参的两种方式

    2025年5月23日
    3
  • 学计算机男生喜欢的礼物,十大00后男生喜欢的礼物大集合

    学计算机男生喜欢的礼物,十大00后男生喜欢的礼物大集合每个时代都有它流行的东西,自然不同时代的人喜欢的东西也不一样。00后的男生作为二十一世纪的第一批年轻男士,自然也有他们喜欢的东西。在这主要为大家盘点一些00后男生喜欢的礼物,每一件都充满创意和新奇的元素,送给00后男生不会拒绝。NO.1男士钛钢军牌00后男生并不是娇弱的妈宝男,他们也有血性方刚的一面,自然他们也想表现出霸气的一面。这款男士钛钢刻字军牌,美国大兵同款军牌项链,可以定制文字和照片,0…

    2022年7月25日
    25
  • 提交缺陷报告

    提交缺陷报告一、软件缺陷的判定1.什么是缺陷软件存在着不符合质量需求或违背软件用户、客户、企业意愿的问题,这就是软件缺陷(Defect),又叫“Bug(臭虫)”。2.软件缺陷的判定准则软件未达到产品说明书标明的功能;产品说明书简称为说明(spec)或产品说明(productspec),是软件开发小组的一个协定。它对开发的产品进行定义,给出产品的细节、如何做、做什么、不能做什么。这种协定从简单的口头说明到正式的书面文档有多种形式。软件出现了产品说明书指明不会出现的错误;如金融软件

    2022年9月18日
    2
  • MybatisPlus 分布式Id

    MybatisPlus 分布式Id对于分布式id,有很多方案,现在大多数用的是基于雪花算法snowflake的实现,美团有leaf,百度有uid-generator,我这里记录下苞米豆在MybatisPlus3中的分布式id实现简单介绍下雪花算法雪花算法也叫雪花id,是一个64bit的整型数据,原生的snowflake是这样的:最高位不用,41bit保存时间戳,单位是毫秒,10bit的机器位,12bit的唯一序列号,可以理解是某一毫秒内,某台机器生成了不重复的序列号10bit一般一会分为5bit的datacen

    2025年6月20日
    7

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号