你知道Mysql的架构吗?

在这里插入图片描述

msyql分为server曾和存储引擎层

server层包括了连接器(管理连接,权限验证)、查询缓存(命中直接返回结果)、分析器(词法分析,语法分析)、优化器(执行计划生成,索引选择)、执行器(操作引擎,返回结果)等,涵盖了Mysql大多数核心功能,以及所有的内置函数(日期、时间、数学和加密函数),所有跨存储引擎的功能都在这一层实现,比如存储过程、触发器、视图等

存储引擎层负责数据的存储和提取。架构模式是插件式的,支持innoDB、MyISAM、Memory等多个存储引擎。

比如一个语句是

select * from T where id=10;

首先,我们需要建立连接,这个时候是经历连接器,管理连接,权限认证;

第二步是:查询缓存,如果命中直接返回,mysql 8.0取消了此模块(生效频繁)

第三步是: 分析器,进行词法分析和语法分析,识别sql语句中的字符串代表的是什么,然后判断是否符合msyql的语法;

第三步是: 优化器,在表中有多个索引的时候,决定使用哪个索引;或者是在一个语句进行多表(Join)的时候,决定各个表的连接顺序;

第四步是: 执行器,判断有没有对表的执行查询的权限,有权限的话会从第一行寻找ID=10的数据,一直找到;

相关推荐

  1. 知道轻量级私有云存储架构是什么

    2024-01-24 08:14:01       47 阅读
  2. 如何评判一个算法好坏,知道

    2024-01-24 08:14:01       29 阅读
  3. 抽象类和接口区别知道

    2024-01-24 08:14:01       35 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-01-24 08:14:01       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-01-24 08:14:01       100 阅读
  3. 在Django里面运行非项目文件

    2024-01-24 08:14:01       82 阅读
  4. Python语言-面向对象

    2024-01-24 08:14:01       91 阅读

热门阅读

  1. NAT配置

    NAT配置

    2024-01-24 08:14:01      61 阅读
  2. C语言—#ifndef, #define, #endif

    2024-01-24 08:14:01       57 阅读
  3. KMP-重复子字符串

    2024-01-24 08:14:01       62 阅读
  4. HTTP状态信息

    2024-01-24 08:14:01       40 阅读
  5. SpringMVC第三天(RESTful)

    2024-01-24 08:14:01       51 阅读
  6. Prompt Engineering

    2024-01-24 08:14:01       57 阅读
  7. 常用的gpt-4 prompt words收集5

    2024-01-24 08:14:01       51 阅读
  8. c#读取getman网址中的json

    2024-01-24 08:14:01       48 阅读