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.pswp.cn/news/919334.shtml
繁体地址,请注明出处:http://hk.pswp.cn/news/919334.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

详解flink java基础(一)

文章目录1.流式处理flink介绍2.Flink SQL介绍3. Flink Runtime4.使用flink集成kafka5.使用Flink SQL进行有状态流处理6.Event time & Watermarks7. flink Checkpoints & recovery1.流式处理flink介绍 实时服务依赖流式处理: flink优点: 高性能丰富的特性&#xff1a…

Day119 持续集成docker+jenkins

Day119 dockerjenkins 1.Dockerfile Dockerfile 可以用于项目部署。通过编写 Dockerfile,可以将整个项目及其所需的依赖项打包到一个 Docker 镜像中,然后在任何支持 Docker 的环境中部署和运行该镜像 Dockerfile 是用于构建 Docker 镜像的文本文件。它包…

Vue3+Vite MPA多页面应用开发完整指南 – 从零搭建到部署优化

什么是 MPA 多页面应用 MPA(Multi-Page Application)是由多个独立的 HTML 页面组成的应用,每个页面都有独立的入口文件。与 SPA 不同,MPA 的每个页面都是独立的,页面间通过链接跳转,适合大型项目或需要 SE…

【企业级架构】企业战略到技术落地的全流程【第一篇】

目录 一、人生蓝图与企业罗盘:战略视角下的成长架构 1. 大学毕业迷茫期 → 企业未制定战略前:无方向、无目标​ 2. 制定职业规划 → 企业战略制定:明确 “去哪” 和 “分几步走”​ 3. 盘点自身能力差距 → 业务架构梳理:搞清…

(二) Python + 地球信息科学与技术 = 经典案例分析

目录 四、农业精准施肥与产量预测(植被指数 机器学习) 五、公共场所踩踏事故预警系统(时空大数据 Web 开发) 六、森林火灾智能识别与救援路径规划(遥感 路径优化) 七、海岸线侵蚀动态监测与防护&…

从需求到部署全套方案:餐饮服务许可证数据可视化分析系统的大数据技术实战

🎓 作者:计算机毕设小月哥 | 软件开发专家 🖥️ 简介:8年计算机软件程序开发经验。精通Java、Python、微信小程序、安卓、大数据、PHP、.NET|C#、Golang等技术栈。 🛠️ 专业服务 🛠️ 需求定制化开发源码提…

Qt 关于QString和std::string数据截断的问题- 遇到\0或者0x00如何处理?

Qt 关于QString和std::string数据截断的问题- 遇到\0或者0x00如何处理?引言一、解决方案二、使用QByteArray注意事项引言 在Qt开发中,使用QString或std::string获取、发送字符串时,遇到\0(空字符)或者0x00(十六进制表示)可能导致数据截断&am…

Spring Cloud LoadBalancer 最佳实践

Ribbon 曾经是 Spring Cloud 家族默认的客户端负载均衡工具,而 Spring Cloud LoadBalancer (SCLB) 是官方替换 Ribbon 的新实现。表面上它们都解决 “服务调用时选哪个实例” 的问题,但在理念、架构和生态上差异不小。一、Ribbon vs SCLB1. 定位和生态…

【STM32】SPI 与 Flash 笔记

1️⃣ SPI(Serial Peripheral Interface,串行外设接口)英文解释: Serial:串行Peripheral:外设Interface:接口用途:MCU 与外部设备(Flash、传感器等)高速数据通…

抽象工厂设计模式 Abstract Factory

抽象工厂抽象工厂设计模式是一种创建模式,它提供了一个用于创建相关或从属对象族的接口,而无需指定其具体类。 它在以下情况下特别有用: 您需要创建必须一起使用并且是一致系列的一部分的对象(例如,按钮、复选框和菜单…

WSL 下的虚拟网卡配置

第一部分:Windows 虚拟网卡创建指南 1. 原理 在 Windows 里,“虚拟网卡”本质是由网络驱动在系统网络栈中创建的一个 软件网卡接口。它的作用和物理网卡类似,只不过不直接连接到物理硬件,而是通过内核网络驱动与宿主机网络进行交换…

Dify web前端源码本地部署详细教程

目录 1. 先启动API 2. 启动worker服务 3. 启动web 4. 访问登陆地址 在前面的文章中,Dify源码部署,搭建二次开发环境(一) 已经记录了如何在本地启动API、work、中间件。在本篇文章中,将概述如何启动dify web源码项…

CVPR 2025|英伟达联合牛津大学提出面向3D医学成像的统一分割基础模型

在 2D 自然图像和视频的交互式分割领域,基础模型已引发广泛关注,这也促使人们开始构建用于医学成像的 3D 基础模型。然而,3D 医学成像存在的领域差异以及临床应用场景,要求开发一种有别于现有 2D 解决方案的专用模型。具体而言&am…

解决“Win7共享文件夹其他电脑网络无法发现共享电脑名称”的问题

要让运行 Windows 7 的电脑被局域网中其他设备(包括另一台电脑、手机、NAS 等)“发现”,必须同时满足三个条件: 网络发现功能已启用;对应的后台服务已启动;防火墙规则放行。 下面给出最简、最稳妥的 3 步设…

Python pyzmq 库详解:从入门到高性能分布式通信

一、前言 在现代软件开发中,进程间通信(IPC)与分布式系统通信已经成为基础能力。无论是构建一个微服务架构的后端,还是实现大规模并行计算任务,如何让不同的进程或节点之间高效地传递消息,都是核心问题。 传…

CentOS 7更换国内镜像源

第一步:检查系统版本 在修改任何配置之前,先确定你的 CentOS 版本,因为不同版本的镜像源配置文件不同。 cat /etc/redhat-release这个命令会显示你的 CentOS 版本信息,例如 CentOS Linux release 7.9.2009 (Core)。从你的错误日志…

详解 doclayout_yolo:Python 文档布局检测

目录一、doclayout_yolo 核心功能二、安装方法1. 直接安装2. 通过 PDF-Extract-Kit 安装三、使用示例1. 快速体验(HuggingFace Demo)2. 本地推理代码3. 批量处理四、技术亮点五、应用场景六、其他说明1.相关资源2. 注意事项doclayout_yolo 是一个基于 Y…

猫头虎AI分享|一款Coze、Dify类开源AI应用超级智能体Agent快速构建工具:FastbuildAI

猫头虎AI分享|一款 Coze、Dify 类开源 AI 应用超级智能体快速构建工具:FastbuildAI 区别在于它的易用度和商业闭环功能 摘要:FastbuildAI 是一个开源的 AI 应用“快速构建 商业化闭环”工具。它让个人开发者与小团队用 可视化 零代码 的方…

GitLab 安全漏洞 CVE-2025-6186 解决方案

本分分享极狐GitLab 补丁版本 18.2.2, 18.1.4, 18.0.6 的详细内容。这几个版本包含重要的缺陷和安全修复代码,我们强烈建议所有私有化部署用户应该立即升级到上述的某一个版本。对于极狐GitLab SaaS,技术团队已经进行了升级,无需用户采取任何…

【K8s】harbor安装与推送镜像

引言 在开发中,先推送镜像到docker,然后直接在docker运行。但是在K8S中,需要动态创建或者分配机器,这里需要将镜像推送到harbor仓库,然后再从仓库拉取到每台集群机器。 docker安装harbor:https://learnku…