数据库原理与应用基础(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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 基于MATLAB的AM调制解调「建议收藏」

    基于MATLAB的AM调制解调「建议收藏」基于MATLAB的AM调制解调摘要现在的社会越来越发达,科学技术不断的在更新,在信号和模拟电路里面经常要用到调制与解调,而AM的调制与解调是最基本的,也是经常用到的。用AM调制与解调可以在电路里面实现很多功能,制造出很多有用又实惠的电子产品,为我们的生活带来便利。在我们日常生活中用的收音机就是采用了AM调制的方式,而且在军事和民用领域都有十分重要的研究课题。现用MATLAB中M文件实现本课

    2022年6月3日
    52
  • mmse评估量表_MMSE评估评分指导[通俗易懂]

    简易智能精神状态检查量表(MMSE)操作说明I、定向力(最高分:10分)1、每答对一题得1分星期几?几号?几月?什么季节?哪一年?2、每答对一题得1分省?市?区或县?什么地方?第几层楼?II、记忆力(最高分:3分)告诉被测试者您将问几个问题来检查他的记忆,然后清楚、缓慢的说出3个相互无关的东西的名称(大约1秒钟说1个),说完所有的3个名称后,要求被测试者重复它们。被测试者的得分取决于他们首次重复的…

    2022年4月18日
    107
  • jdk14下载与安装教程(win10)超详细

    jdk14下载与安装教程(win10)超详细一、前言现在jdk已经升级到JDK14版本了,这里也记录一下jdk14的下载及安装过程,对于刚学习java的小伙伴可以参考,熟手可忽略,呵呵~二、下载安装步骤一、首先是去jdk官网下载,官网下载还需要注册,如果大家不怕麻烦的话可以去官网下载,下载速度也是龟速,我也是花了好长时间才下载下来,大家可以点击我的网盘目录jdk目录下载,目录也有其它低版本的,如果有需要大家根据需要自行选择。…

    2022年5月26日
    191
  • Android滑动解锁功能实现,Android_滑动解锁

    Android滑动解锁功能实现,Android_滑动解锁1.滑动解锁代码流程图:流程图图片资源:https://pan.baidu.com/s/1tkcw0tdxV78mnwHqOtcAGg提取码:2xsq2.代码:xml文件:xmlns:app=”http://schemas.android.com/apk/res-auto”xmlns:tools=”http://schemas.android.com/tools”android:layout_wi…

    2022年6月29日
    41
  • Python金融应用编程:衍生品定价和套期保值的随机过程

    Python金融应用编程:衍生品定价和套期保值的随机过程随机过程对定量融资的许多方面都很有用,包括但不限于衍生品定价,风险管理和投资管理。这些应用程序将在本文后面进一步详细讨论。本节介绍了量化融资中使用的一些流行的随机过程及其在Python中的实现。模型参数模型参数类包含以下随机过程使用的所有参数。为了便于理解,这些参数的前缀是它们所用的随机过程的名称。随机过程的校准将涉及寻找与某些历史数据相符的参数值。对于那些感兴趣的校准,将在我博客后面的后…

    2022年9月27日
    3
  • SVN服务器创建及使用–以文档文件的管理示例

    SVN服务器创建及使用–以文档文件的管理示例来源:http://blog.csdn.net/kupe87826/article/details/8139908参考:http://baike.baidu.com/view/183128.htmhttp://wenku.baidu.com/view/ed3e3435ee06eff9aef807ff.html

    2022年7月19日
    11

发表回复

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

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