首页 > 数据库 >mysql基础架构

mysql基础架构

时间:2023-07-28 18:12:57浏览次数:49  
标签:缓存 Service 登录 分析器 基础架构 mysql

基础架构

Mysql基础架构图[1]
mysql-framework.png

mysql主要分为 Service层存储引擎

一. Service层

包含MySQL的大部分功能; 请求进入后, 到数据提取前的所有操作; 包含连接器,查询缓存,分析器,优化器,执行器,还有所有的内置函数(日期,时间,数学和加密函数),所有跨存储引擎的功能都在这一层实现:存储过程、触发器、视图等

1. 连接器

客户端 和 服务端 使用tcp 协议进行连接

即MySQL的登录模块, 登录成功后, 进行用户的权限校验;

登录时, 即使修改权限, 也需要重新登录后才能生效

2. 查询缓存

MySQL8.x 删除缓存模块, 使用Redis等进行替换

3. 分析器

客户请求进来的sql语句, 交给Service层的分析器进行词法分析和语法分析;

如果分析过程中出现异常, 则会抛出异常信息; 未出现异常, 则会生成抽象语法树(AST).

4. 优化器


  1. 图片来自于网络 ↩︎

标签:缓存,Service,登录,分析器,基础架构,mysql
From: https://www.cnblogs.com/qianchangseven/p/17588581.html

相关文章

  • 基于 Kubernetes 部署 MySQL 数据库
    本文将介绍如何基于Kubernetes部署MySQL数据库。创建服务Service创建一个Service为即将部署的MySQL数据库固定连接的IP,同时提供负载均衡,下面是mysql-service.yaml文件的内容: yaml复制代码apiVersion:v1kind:Servicemetadata:name:mysqlspec:s......
  • mysql 中的 having 与 order by 的区别与联系举例说明
    HAVING和ORDERBY都是在查询语句中用于对结果进行排序的子句,但它们的使用场景和作用略有不同。区别:HAVING子句用于在GROUPBY子句后对分组结果进行筛选,只返回满足条件的分组。它通常与聚合函数一起使用,用于筛选分组后的结果集。HAVING子句是在分组后进行筛选,可以使用聚合函数和......
  • mysql 的左连结 右边结 内连结 外连结和全连结的区别及使用场景举例
    在MySQL中,左连接(LEFTJOIN)、右连接(RIGHTJOIN)、内连接(INNERJOIN)、外连接(OUTERJOIN)和全连接(FULLJOIN)是常用的连接操作,用于联接多个表。这些连接操作的区别如下:左连接(LEFTJOIN):返回左表中的所有记录,以及与右表中匹配的记录。如果右表没有匹配的记录,则返回NULL值。左连接使用L......
  • 写一条mysql更新数据的语句
    要更新MySQL数据库中的数据,你可以使用UPDATE语句。下面是一个示例代码,用于更新数据库中的数据:importmysql.connectordefupdate_data(connection,table,column,value,condition):cursor=connection.cursor()#构造更新数据的SQL语句update_query=f"UP......
  • mysql中子查询和连接操作的使用场景和区别是什么?请举例说明?
    MySQL中的子查询和连接操作都是用于联接多个表或查询结果,但它们有不同的使用场景和区别。子查询是指在一个查询中嵌套另一个查询,内部查询的结果作为外部查询的条件或数据源。子查询通常用于获取特定条件下的数据,或者用于计算某个字段的值。连接操作是指通过联接多个表来获取相关......
  • mysql中in的使用场景及用法举例说明?
    在MySQL中,IN运算符用于在WHERE子句中指定一个条件,以便从一个给定的列表中选择满足条件的值。IN运算符可以用于任何数据类型,包括数字、字符串和日期。下面是IN运算符的使用场景和用法的示例说明:使用IN运算符筛选特定值:查询订单表中订单状态为"已发货"或"已完成"的订单:SELECT......
  • mysql8.0环境的搭建(Linux)
    1.安装前说明1.1Linux系统及工具的准备。安装并启动好两台虚拟机:CentOS7安装有远程访问centOS系统的工具CentOS6和CentOS7在MySQL的使用中的区别默认防火墙:CentOS6是iptables;CentOS7是firewalld;启动服务的命令:CentOS6是servicemysqldstart;CentOS7是systemctlstart......
  • Mysql高级4-索引的使用规则
    一、最左前缀法则如果索引了多列(联合索引),要遵守最左前缀法则。最左前缀法则指的是查询从索引的最左列开始,并且不跳过索引中的列,如果跳跃某一列,索引将部分失效(后面的字段索引失效)示例1:account_transaction表中创建一个联合索引,使用method字段+trader_staff_id字段+operat......
  • MySQL之锁
    MySQL之锁全局锁介绍全局锁就是对整个数据库实例加锁,加锁后整个实例就处于只读状态,后续的DML的写语句,DDL语句,已经更新操作的事务提交语句都将被阻塞。其典型的使用场景是做全库的逻辑备份,对所有的表进行锁定,从而获取一致性视图,保证数据的完整性演示特点数据库中加全局锁,......
  • MySQL_Explain详解
    当我们在工作中面临SQL优化的问题时,熟练掌握适合的工具,就能使事半功倍,提高工作效率。其中,EXPLAIN工具就是一种常用且高效的SQL优化工具。EXPLAIN关键字的使用方法是,在select语句之前添加它,这样MySQL会在查询上设置一个标记。但不同于普通查询,此时执行的并不是查询语句本......