美文网首页
数据库的查询流程, 2022-08-11

数据库的查询流程, 2022-08-11

作者: Mc杰夫 | 来源:发表于2022-08-12 12:23 被阅读0次

(2022.08.11 Thur)
对数据库查询,按其处理流程可分为

  • 客户端的请求被数据库连接器接收
  • server层处理
  • 存储引擎处理
  • 返回结果

(2022.08.12 Fri)
基本流程框图如下


MySQL query processing

其中的连接器常被认为是server layer的一部分。

  • 连接器
    连接器负责跟客户端建立连接、获取权限、维持和管理连接
  • 查询缓存
    服务的查询缓存,如果能找到对应的查询,则不必进行查询解析,优化,执行等过程,直接返回缓存中的结果集。运行独立的缓存服务,在架构层面优化了查询速度。
  • 服务器层
    服务器层分为多个部分,包括parser解析器,optimiser优化器,和执行器。
    • parser
      在将查询转换为关系代数后,数据库执行三个方面的检测,即解析,syntax check,semantic check和Shared pool check。
      • Syntax check语法检测 - 检测SQL语法可用性,如SLECT * FM table_a这个查询中的SLECTFM都是错误拼写,由语法检测不愁检测出
      • Semantic check语义检测 - 检测查询语句是否有意义,比如FROM table_x这个语句中的表名table_x不存在,则在语义检测被查出
      • Shared Pool check共享池检测 - 在执行过程中每个查询都拥有一个哈希码,共享池检测将决定写入哈希码是否存在于共享池中。若存在,则DBMS将不再执行优化和执行的步骤,这种情况被称为soft parsing。相对应的,需要完成优化和执行的parsing称为hard parsing。
    • Optimiser优化器
      在优化阶段,数据库针对DML命令执行hard parsing,并在parse过程中优化。这个过程中,数据库检测满足一个查询的多种查询执行方案(execution plan),并选出其中最高效的查询方案用于执行,执行方案保存在数据库目录(db catalog)中。
    • Row source generation行源生成
      行源生成用于从优化器接收最优执行方案,并产生被数据库其他部分使用的迭代执行方案(iterative execution plan)。迭代执行方案指的是被SQL引擎执行时会生成结果集的二元程序(binary programme)。

经过了服务器层的处理,执行方案被送往存储引擎进行查询,并返回结果。

Reference

1 SQL query processing, Geeksforgeeks
2 MYSQL查询和插入数据的流程是怎样的,大魔王先生,博客园
3 详解mysql更新执行步骤,乔帮主,简书

相关文章

  • MyBatis Connection 对象存在在哪里?

    平时查询数据库 MyBatis 查询流程 疑问 从 MyBatis 查询流程中看不到 Connection 对象的...

  • 数据库的查询流程, 2022-08-11

    (2022.08.11 Thur)对数据库查询,按其处理流程可分为 客户端的请求被数据库连接器接收 server层...

  • MySQL多表查询及子查询

    1. MySQL数据库执行查询操作时的查询流程: 请求-->查询缓存请求-->查询缓存-->解析器-->预处理器-...

  • Java数据库连接池

    一、关于数据库连接池 一个普通的java程序,要查询数据库的数据,基本流程是这样的: 可以看到,进行一次查询,要进...

  • Mybatis源码简析

    本文将按mybatis中主要数据库查询操作的流程对其源码进行简单分析。目录如下: 1、mybatis的主要工作流程...

  • MySQL查询语句执行过程

    查询请求的执行流程 众所周知在MySQL数据库应用中查询请求是使用最多的,假设我们输入代码段1 中的SQL,通过客...

  • Activiti工作流框架——控制操作流程

    部署流程定义 启动流程实例 查询流程定义 查询最新版本的流程定义 查询流程实例状态 导出流程图到文件夹下 删除流程...

  • 任务2.5 项目总结汇报

    任务内容 一、GIF效果图 2、数据库表结构 三、ADO.NET查询数据库的流程(1)获取连接字符串;(2) 运用...

  • Python模块·PyMySQL数据库

    一、PyMySQL实现思路流程 1.建立连接2.创建游标:游标数据库操作的接口3.数据库操作(建表、插入数据、查询...

  • 2022-08-11

    2022-08-11

网友评论

      本文标题:数据库的查询流程, 2022-08-11

      本文链接:https://www.haomeiwen.com/subject/boctgrtx.html