【MYSQL】MYSQL逻辑架构

mysql逻辑架构分为3层

mysql逻辑架构分为3层

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

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

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

回表发生在哪一层

MySQL的回表操作发生在存储引擎层。‌

回表操作是基于物理地址来获取数据的过程,‌这一过程主要在MySQL的存储引擎层进行。‌当执行一条SQL语句时,‌如果需要从两个B+索引中去取数据,‌就会发生回表操作。‌具体来说,‌回表操作通常涉及到以下情况:‌

使用非聚簇索引:‌当表中没有定义主键或者查询条件没有使用主键时,‌非聚簇索引成为主要的索引选择,‌此时回表操作难以避免。‌

数据修改:‌如果在回表过程中发生了数据修改(‌如DELETE、‌UPDATE)‌,‌则可能会读取到不一致或错误的数据。‌

覆盖索引的判断:‌在选择是否使用覆盖索引时,‌需要综合考虑查询的字段以及字段长度,‌以及查询操作的频率和数据量。‌如果查询需要返回的字段较多或字段长度较长,‌可能需要权衡回表带来的性能损耗和数据完整性的需求。‌

在实际应用中,‌回表操作可能因为上述原因而发生,‌但这一过程主要在MySQL的存储引擎层进行处理,‌特别是对于InnoDB存储引擎而言,‌其内部机制负责处理这些索引和数据的交互操作

相关推荐
何中应20 分钟前
Postgres 搭建主从集群
数据库·postgresql·集群·开发工具
数字新视界34 分钟前
档案库房环境安全监控解决方案
大数据·运维·数据库·物联网·环境监控系统
嘘神秘用9 小时前
布:AI 驱动的 Redis 客户端,更快、更直观
数据库·人工智能·redis
alxraves10 小时前
医用超声远程会诊系统:会诊平台的核心架构与功能解析
java·人工智能·架构
东北小狐狸-Hellxz11 小时前
Redis 哨兵搭建+ACL权限控制
数据库·redis
幻风_huanfeng11 小时前
软考:高级软件架构师学习笔记----软件架构设计
架构·系统架构·软考·高级系统架构师
研究员子楚12 小时前
GEO行业发展标准体系白皮书V2.0-第09卷 · 适配篇:硅基主权伦理宪章与行业适配宣言
数据库·人工智能·geo
CoderMeijun13 小时前
一条SQL查询语句在MySQL中是如何执行的
mysql·sql执行流程·连接器·mysql架构·索引下推·执行器
OCR_1337162127513 小时前
技术拆解:国产GPU两大核心路线GPGPU与NPU的架构差异与落地现状
架构
l1340620823514 小时前
鸿蒙实战:RDB 数据库设计与 DatabaseService
数据库·华为·harmonyos·鸿蒙系统