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

【MySQL】MySQL结构体系及核心组件功能是怎样的?

简要回答:
MySQL采用三层架构连接层处理网络连接和认证;服务层包含SQL解析、优化器等核心功能;存储引擎层插件式支持InnoDB等引擎。其中InnoDB通过redo log 实现事务持久性优化器负责选择最优执行计划。

1.MySQL整体架构

采用C/S架构,主要分三层。
1.连接层(Client Layer)
2.服务层(Server Layer)
3.存储引擎层(Storage Engine Layer)

请添加图片描述

2.核心组件功能:

2.1连接层:

  • 连接池:管理客户端连接复用连接资源。
  • 身份验证:验证用户名/密码和主机权限。
  • 线程处理:每个连接使用单线程处理

2.2服务层(核心处理层):

  • SQL接口:接收SQL命令,返回查询结果。
  • 解析器:语法分析->生成解析数->语义检查。
  • 查询优化器:指定执行计划(索引选择,JOIN顺序等)
  • 缓存:缓存SELECT语句及其结果集(MySQL8.0已移除查询缓存)

2.3存储引擎层(插件式架构)

InnoDB:

  • 支持事务(ACID)
  • 行级锁
  • 聚簇索引
  • 默认引擎(MySQL5.5+)

MyISAM:

  • 表级锁
  • 非事务安全
  • 全文索引
  • 适合 读多写少场景

Memory:

  • 内存存储
  • 临时表默认引擎

2.4物理层文件:

.frm文件:存储表结构定义
.ibd文件:InnoDB数据文件
.MYD/.MYI:MyISAM数据文件/索引文件
重做日志(redo log):实现事务持久性
二进制日志(binlog):主从复制和数据恢复

3.流程实例(以SELECT查询为例)

1.连接管理:客户端通过TCP连接MySQL服务。
2.查询解析解析器检查SQL语法并生成解析树。
3.优化处理优化器选择使用索引A而非全表扫描。
4.引擎交互:InnoDB通过B+树索引定位。
5.结果返回:将数据通过连接层返回客户端。


http://www.kler.cn/a/612198.html

相关文章:

  • stm32week8
  • gogs私服搭建
  • 代码随想录算法训练营Day12 | Leetcode 226翻转二叉树、101对称二叉树、104二叉树的最大深度、111二叉树的最小深度
  • Eclipse IDE for ModusToolbox™ 3.4环境通过JLINK调试CYT4BB
  • 【408--复习笔记】数据结构
  • LeetCode19删除链表的倒数第N个结点
  • 单片机内存划分总览与介绍
  • 《Python实战进阶》No34:卷积神经网络(CNN)图像分类实战
  • 【C++】httplib:轻量级的 HTTP 服务器和客户端
  • vue 双向绑定的原理是什么
  • Linux Namespace(网络命名空间)系列三 --- 使用 Open vSwitch 和 VLAN 标签实现网络隔离
  • Redis 性能数据解读与问题排查优化版
  • 基于Flask的防火墙知识库Web应用技术解析
  • python爬虫PyQt简介
  • 【QT5 多线程示例】信号量
  • C++学习笔记(二十九)——list
  • 【Linux网络-poll与epoll】epollserver设计(两个版本 Reactor)+epoll理论补充(LT ET)
  • vue ts+Windi CSS
  • CTFshow【命令执行】web29-web40 做题笔记
  • 未来工程项目管理新走向:云原生软件赋能绿色可持续建设