mysql逻辑架构分为3层
mysql逻辑架构分为3层
1). 连接层:主要完成一些类似连接处置处罚,授权认证及相干的安全方案。
2). 服务层:在 MySQL据库体系处置处罚底层数据之前的全部工作都是在这一层完成的,包罗权限判定,SQL接口,SQL剖析,SQL分析优化, 缓存查询的处置处罚以及部分内置函数实行(如日期,时间,数学运算,加密)等等。各个存储引擎提供的功能都集中在这一层,如存储过程,触发器,视图等。
3). 引擎层:是底层数据存取操作实现部分,由多种存储引擎共同构成。真正负责MySQL中数据的存储和提取。针对特殊数据引擎还要办事务处置处罚。
回表发生在哪一层
MySQL的回表操作发生在存储引擎层。
回表操作是基于物理地点来获取数据的过程,这一过程主要在MySQL的存储引擎层举行。当实行一条SQL语句时,如果需要从两个B+索引中去取数据,就会发生回表操作。具体来说,回表操作通常涉及到以下情况:
使用非聚簇索引:当表中没有定义主键大概查询条件没有使用主键时,非聚簇索引成为主要的索引选择,此时回表操作难以制止。
数据修改:如果在回表过程中发生了数据修改(如DELETE、UPDATE),则大概会读取到不一致或错误的数据。
覆盖索引的判定:在选择是否使用覆盖索引时,需要综合考虑查询的字段以及字段长度,以及查询操作的频率和数据量。如果查询需要返回的字段较多或字段长度较长,大概需要权衡回表带来的性能消耗和数据完整性的需求。
在现实应用中,回表操作大概因为上述原因而发生,但这一过程主要在MySQL的存储引擎层举行处置处罚,特别是对于InnoDB存储引擎而言,其内部机制负责处置处罚这些索引和数据的交互操作
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |