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

MySQL架构和储存引擎

MySQL服务器整体架构如下:

连接层:

连接层的作用是处理客户端的连接,如何管理连接的。

网络端口和连接管理线程:

网络端口:一台服务器可以连接网络上多个端口的客户连接,只需要开放多个端口,只需要在选项文件中指定多个端口号即可。

连接管理线程:用来处理客户端连接的请求。一个连接管理线程可以处理所有的TCP/IP请求。

客户端连接线程管理:每一个客户端请求都会对应一个执行线程,用于处理身份验证和具体请求,执行线程也通过池化技术进行了缓存。用于提高线程的复用,避免频繁创建销毁线程。

系统变量thread_cache_size决定了线程缓存的大小,这个值在服务器启动的时候会自动的设置,单页可以通过选项文件指定大小,如果设置为0禁用缓存。

还可以通过设置thread_stack来调整堆栈大小,因为会设计到一些递归的原因。

还可以查看线程池中的线程数量新创建的线程数Theads_cachedTheads_created

链接量管理:

系统变量:max_connections控制服务器可以允许客户端连接的最大请求数,当达到man_connections后,多余的请求就会拒绝,同时会增加Connection_errors_max_connections的值。

实际上mtysqld允许最大连接数是max_connections+1,多余那个是给CONNECTION_ADMIN用的。即使普通连接达到了max_connections,但是管理员也可以连接到服务器进行管理操作。

服务层:是整个服务器服务的核心,主要包括服务管理和公共组件,noSQL和SQL接口,解析器和查询优化器,还有缓存等。

nosql和sql接口:用于接受客户端发送的各种SQL语句和命令,然后发送给其他部分,最后将收到的结果返回给客户端。

Paster(语法分析器):主要作用是将收到的sql语句中的关键字和自定义字段进行语法分析和词法分析,最终使其转化成一课解析树,词法分析就是对关键字进行提取,比如select、update、delete等,语法解析就是判断sql语句是否满足语法规则,如果不满足救会报错。

Optimizer(查询优化器):作用将解析树进行优化,将优化后的结果交给储存引擎api,然后进行查询,优化前后的查询结果一样,但是效率不一样。

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

相关文章:

  • Web安全 - 构建安全可靠的API:基于国密SM2/SM3的文件上传方案深度解析
  • 多智能体架构设计:从单Agent到复杂系统的演进逻辑
  • 人工智能 | 基于大数据的皮肤病症状数据可视化分析系统(matlab源码)
  • 发布npmjs组件库
  • AopAutoConfiguration源码阅读
  • 鼠标右键没有“通过VSCode打开文件夹”
  • JVM学习笔记-----类加载
  • FPGA-Vivado2017.4-建立AXI4用于单片机与FPGA之间数据互通
  • Google 的 Opal:重新定义自动化的 AI 平台
  • WPF 打印报告图片大小的自适应(含完整示例与详解)
  • Rust 入门 生命周期-next2 (十九)
  • 牛津大学xDeepMind 自然语言处理(1)
  • Centos7 使用lamp架构部署wordpress
  • 接口和抽象类的区别(面试回答)
  • 【深度长文】Anthropic发布Prompt Engineering全新指南
  • Java面向对象三大特性:封装、继承、多态深度解析与实践应用
  • ⭐CVPR2025 RigGS:从 2D 视频到可编辑 3D 关节物体的建模新范式
  • 音频分类模型笔记
  • OOP三大特性
  • 【计算机视觉与深度学习实战】05计算机视觉与深度学习在蚊子检测中的应用综述与假设
  • 网络基础——协议认识
  • Pytest项目_day18(读取ini文件)
  • Unity 中控开发 多路串口服务器(一)
  • 深层语义知识图谱:提升NLP文本预处理效果的关键技术
  • C++ 多进程编程深度解析【C++进阶每日一学】
  • 一个基于纯前端技术实现的五子棋游戏,无需后端服务,直接在浏览器中运行。
  • 深度学习篇---softmax层
  • Maven 生命周期和插件
  • 大数据分析-读取文本文件内容进行词云图展示
  • 大厂求职 | 2026海尔校园招聘,启动!