美文网首页
01MySql的结构及执行流程

01MySql的结构及执行流程

作者: 評常訫 | 来源:发表于2022-03-10 20:11 被阅读0次

mysql的逻辑架构分为三层:

    一、客户端:并非mysql独有。功能:连接处理、授权认证、安全等

    二、核心服务:有查询解析、分析、优化、缓存、内置函数(比如:时间、加密、截取等);所有的跨存储引擎的功能都在这里实现,如:存储过程、触发器、视图等

    三、存储引擎:负责mysql中的数据存储和提取

mysql的体系结构分为两层:

    一、mysql服务层

        1、连接层:客户端或引用程序通过接口(如:ODBC、JDBC)来连接mysql时最先通过连接层

            1)通讯协议:负责检测客户端版本是否与服务端兼容

            2)线程处理:对每一个连接请求都分配一个独立的线程

            3)用户名密码认证:输入的账号、密码及主机(host)是否可以连接到mysql服务器

        2、sql层

            1)权限判断:判断登录用户可以访问到mysql中的那些库和表

            2)查询缓存:查询时如果数据在query cache中直接返回否则查询数据库(mysql8中废弃)

            3)解析器:分为词法解析和语法解析。词法解析(把sql语句打碎成一个一个的单词,判断每个符号是什么类型,从哪儿开始从哪儿结束);语法解析(对sql进行一些语法检查,比如单引号有没有闭合,根据sql语句生成一个数据结构叫做解析树)

            4)预处理器:判断解析器生成的解析树中的表名及字段名是否存在。存在则生成一个新的解析树

            5)优化器:根据解析树生成不同的执行计划,然后选择一条最优的执行

                比如多表联合查询选择拿一张表作为基准,有多个索引时选择使用哪个索引,移除1=1的恒等式等等。优化器最终会把解析树变成一个执行计划,执行计划也是一个数据结构。最后选择的执行计划不一定是最优的执行计划。我们们在语句执行加上explain就可以查询到执行计划的信息。如果想要详细的信息,就用format=json。

比如语句为:explain format=json select name from user where user_id = 1

此处参考文章

    二、存储引擎层(存储引擎可以根据官方文档DIY)

        1、innodb:支持事物,其设计主要应用于在线事务处理中。特点:行锁,支持外键。默认读取时不会产生锁,5.5版本后是默认的存储引擎

        2、myisam:不支持事物,支持全文检索

            

相关文章

  • 01MySql的结构及执行流程

    mysql的逻辑架构分为三层: 一、客户端:并非mysql独有。功能:连接处理、授权认证、安全等 二、核心...

  • case分支结构

    语法结构及特点 特点 检查变量的实际取值如果与预设的值相匹配,则执行对应的操作 语法结构 case分支的执行流程 ...

  • Java程序运行流程

    Java语句中运行流程分为3种1.顺序结构2.分支结构3.循环结构 顺序结构 及按着顺序执行 分支结构 分支机构又...

  • Tomcat体系结构及执行流程

    Tomcat体系架构 Server:A Server element represents the entire ...

  • 编程语言基础python之流程控制

    在编程中,程序执行结构流程有三种:顺序结构、选择结构和循环结构。 顺序结构:代码从上往下依次执行分支结构:根据不同...

  • 流程控制的基本概念

    流程控制是指控制代码的执行顺序。 在JavaScript中,有三种基本的流程控制结构:顺序结构、选择结构和循环结构...

  • NO.5 Java的基础语法(语句)

    流程控制语句:可以控制程序的执行流程(从上到下,依次执行) 流程控制语句的分类:顺序结构(从上到下,依次执行)、选...

  • web前端 -- Day10 js基础

    代码流程控制 代码的执行过程,分为三种方式:顺序结构、分支结构、循环结构 1、顺序结构 代码执行的顺序,从上到下,...

  • 流程

    概念:流程是指程序步骤执行的先后顺序 分类: 顺序结构 选择结构 循环结构 顺序结构 选择结构 if语句 if (...

  • 顺序、选择结构、循环结构

    顺序 先考虑功能的执行顺序再开始写代码 选择结构 作用:控制代码的执行流程 if选择结构 if(布尔类型值){ }...

网友评论

      本文标题:01MySql的结构及执行流程

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