当前位置: 首页 > news >正文

【MYSQL】MYSQL逻辑架构

mysql逻辑架构分为3层

mysql逻辑架构分为3层

1). 连接层:主要完成一些类似连接处理,授权认证及相关的安全方案。

2). 服务层:在 MySQL据库系统处理底层数据之前的所有工作都是在这一层完成的,包括权限判断,SQL接口,SQL解析,SQL分析优化, 缓存查询的处理以及部分内置函数执行(如日期,时间,数学运算,加密)等等。各个存储引擎提供的功能都集中在这一层,如存储过程,触发器,视图等。

3). 引擎层:是底层数据存取操作实现部分,由多种存储引擎共同组成。真正负责MySQL中数据的存储和提取。针对特殊数据引擎还要做事务处理。

在这里插入图片描述

回表发生在哪一层

MySQL的回表操作发生在存储引擎层。‌
回表操作是基于物理地址来获取数据的过程,‌这一过程主要在MySQL的存储引擎层进行。‌当执行一条SQL语句时,‌如果需要从两个B+索引中去取数据,‌就会发生回表操作。‌具体来说,‌回表操作通常涉及到以下情况:‌
使用非聚簇索引:‌当表中没有定义主键或者查询条件没有使用主键时,‌非聚簇索引成为主要的索引选择,‌此时回表操作难以避免。‌
数据修改:‌如果在回表过程中发生了数据修改(‌如DELETE、‌UPDATE)‌,‌则可能会读取到不一致或错误的数据。‌
覆盖索引的判断:‌在选择是否使用覆盖索引时,‌需要综合考虑查询的字段以及字段长度,‌以及查询操作的频率和数据量。‌如果查询需要返回的字段较多或字段长度较长,‌可能需要权衡回表带来的性能损耗和数据完整性的需求。‌
在实际应用中,‌回表操作可能因为上述原因而发生,‌但这一过程主要在MySQL的存储引擎层进行处理,‌特别是对于InnoDB存储引擎而言,‌其内部机制负责处理这些索引和数据的交互操作

http://www.lryc.cn/news/414917.html

相关文章:

  • 【Python】数据类型之字符串
  • c++编写java模式的线程类
  • vcpkg install libtorch[cuda] -allow-unsupported-compiler
  • Flink的DateStream API中的ProcessWindowFunction和AllWindowFunction两种用于窗口处理的函数接口的区别
  • MATLAB中dmperm函数用法
  • 苹果折叠屏设备:创新设计与技术突破
  • C#加班统计次数
  • 【资治通鉴】“ 将欲取之、必先予之 “ 策略 ① ( 魏桓子 割让土地 | 资治通鉴原文分析 | 道德经、周书、吕氏春秋、六韬 中的相似策略 )
  • Spring5 的日志学习
  • python爬虫实践
  • 【前端面试】七、算法-数组展平
  • Laravel php框架与Yii php 框架的优缺点
  • 使用 addRouteMiddleware 动态添加中间
  • Zookeeper未授权访问漏洞
  • 【JavaEE】定时器
  • 2024带你轻松玩转Parallels Desktop19虚拟机!让你在Mac电脑上运行Windows系统
  • 【算法】递归实现二分查找(优化)以及非递归实现二分查找
  • CDN 是什么?
  • 索引:SpringCloudAlibaba分布式组件全部框架笔记
  • 2024第五届华数杯数学建模竞赛C题思路+代码
  • FFmpeg源码:av_reduce函数分析
  • nginx: [error] open() “/run/nginx.pid“ failed (2: No such file or directory)
  • <数据集>BDD100K人车识别数据集<目标检测>
  • 利用SSE打造极简web聊天室
  • 代码随想录第二十天|动态规划(4)
  • TreeSize:免费的磁盘清理与管理神器,解决C盘爆满的燃眉之急
  • 如何建立自己的技术知识体系
  • JS优化了4个自定义倒计时
  • 模型实战(25)之 基于LoFTR深度学习匹配算法实现图像拼接
  • 计算机毕业设计Python+Spark知识图谱高考志愿推荐系统 高考数据分析 高考可视化 高考大数据 大数据毕业设计