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

【MySQL】MySQL 架构

一、MySQL 架构

C/S 架构,即客户端/服务器架构。服务器程序直接和我们存储的数据打交道,多个客户端连接这个服务器程序。客户端发送请求,服务器响应请求。

MySQL 数据库实例 :即 MySQL 服务器的进程 (我们使用任务管理器查看,可以看到的 mysqld 就是 MySQL 服务器的进程 )

1.1 MySQL 客户端和服务器通信方式 :

1. TCP / IP

因为实际生产环境下,服务器和客户端可能运行在不同的主机中,于是需要通过网络来通信。MySQL 使用 TCP 作为通信协议。

每个计算机有个唯一的 IP 地址,MySQL 服务器再想操作系统申请一个 端口号 (默认为 3306),就可以进行网络通信了。

可以联想到我们使用 SpringBoot 时,配置 yml 文件填写 MySQL 服务器地址 (即 TCP/IP通信的实例)

2. 命名管道和共享内存

服务器和客户端在同一个 Windows 主机上

3. Unix 域套接字文件

客户端和服务器连接相同的 UNIX 套接字文件 ( /tmp/mysql.sock )

1.2 MySQL 服务器如何处理客户端请求

连接管理 —— 解析与优化 —— 存储引擎

在这里插入图片描述

- 连接管理

客户端进程通过 1.1 节介绍的三种连接方式与服务器建立连接,客户端创建一个连接,服务器创建一个线程专门处理这个连接。

如何避免频繁创建消耗线程:

客户端断开连接时,服务器缓存下与之建立连接的这个线程。新的客户端进行连接时,把这个线程分配给它。

- 解析与优化

(1)查询缓存

缓存不命中原因:

  1. 查询请求在任意字符上的不同
  2. 查询请求包含系统函数、用户自定义变量和函数、一些系统表 (这种情况不会被缓存)

缓存失效:

MySQL 检测表的变化,有变化,删缓存

(2) 语法解析

解析客户端发过来的文本

(3)查询优化

MySQL 优化程序对自动进行优化(外连接转内连接、表达式简化
子程序转连接等),提高效率

- 存储引擎

存储引擎是 MySQL 服务器对数据存储和提取操作的封装 ,不同的存储引擎具有不同的存储结构和存取算法

MySQL Server 完成了查询优化后,按照生成的执行计划调用底层存储引擎提供的 API, 再把获取到的数据返回给服务端

存储引擎相关操作:

SHOW ENGINES
CREATE TABLE 表名(建表语句;
) ENGINE = 存储引擎名称;
ALTER TABLE 表名 ENGINE = 存储引擎名称;

相关文章:

【MySQL】MySQL 架构

一、MySQL 架构 C/S 架构,即客户端/服务器架构。服务器程序直接和我们存储的数据打交道,多个客户端连接这个服务器程序。客户端发送请求,服务器响应请求。 MySQL 数据库实例 :即 MySQL 服务器的进程 (我们使用任务管理…...

Python日期时间模块

Python 提供了 日期和时间模块用来处理日期和时间,还可以用于格式化日期和时间等常见功能。 时间间隔是以秒为单位的浮点小数。每个时间戳都以自从 1970 年 1 月 1 日午夜(历元)经过了多长时间来表示。 一、time模块使用 Time 模块包含了大…...

学以致用——植物信息录入1.0(selenium+pandas+os+tkinter)

目的 书接上文,学以致用——植物信息录入(seleniumpandasostkinter) 更新要点: tkinter界面:自动登录、新增(核心功能)、文件夹选择、流程台selenium自动化操作:验证码识别excel数据&#xf…...

什么是压敏电阻

下面的这些都是压敏电阻,常常用在一些电源和信号的浪涌防护电路中。这个是它的电路符号,电路中常用RV表示。当压敏电阻两端电压小于压敏电压时,压敏电阻相当于一个阻值非常大的电阻。当压敏电阻两端电压大于压敏电压时,压敏电阻相…...

Leetcode.901 股票价格跨度

题目链接 Leetcode.901 股票价格跨度 Rating : 1709 题目描述 设计一个算法收集某些股票的每日报价,并返回该股票当日价格的 跨度 。 当日股票价格的 跨度 被定义为股票价格小于或等于今天价格的最大连续日数(从今天开始往回数,…...

vue入门(四)组件基础,$emits简单用法

上一篇&#xff1a;vue入门&#xff08;三&#xff09;事件&#xff08;方法&#xff09;处理、侦听器、模板引用 1.组件最基础的用法&#xff1a; 首先有一个button.vue的组件&#xff0c;里面只画了一个按钮 button.vue: <script> export default({data(){return{but…...

VBA提高篇_27 OptionBOX_CheckBox_Frame_Image_VBA附加控件

文章目录1.单选按钮OptionBOX:2.复选框CheckBox:3.框架Frame:4.图像Image: (loadPictrue)5. VBA附加控件:6. 适用于很多控件的重要属性:1.单选按钮OptionBOX: 默认时,同一窗体的所有单选按钮均属于同一组,只能选中一个 可通过Frame控件进行分组解决. 2.复选框CheckBox: 一次可以…...

STM32开发(11)----CubeMX配置独立看门狗(IWDG)

CubeMX配置独立看门狗&#xff08;IWDG&#xff09;前言一、独立看门狗的介绍二、实验过程1.STM32CubeMX配置独立看门狗2.代码实现3.硬件连接4.实验结果总结前言 本章介绍使用STM32CubeMX对独立看门狗定时器进行配置的方法。门狗本质上是一个定时器&#xff0c;提供了更高的安…...

医疗方案 | 星辰天合入选“2022智慧新医信优秀解决方案”

近日&#xff0c;由 HC3i数字医疗网主办的《数字化转型驱动下的医院高质量发展论坛》暨 2022 智慧新医信优秀解决方案发布仪式在线上召开。XSKY星辰天合的“智慧医疗软件定义数据基础设施”解决方案成功入选 2022 智慧新医信优秀解决方案&#xff0c;。此次论坛由 HC3i 数字医疗…...

【系统服务实战】tomcat服务的安装实战

未来要更新的专栏&#xff08;此表格后面会继续完善&#xff09; 专栏系列学习路线完成情况云原生系列linux基本功系列-基础命令汇总已更新51个命令云原生系列linux基本功系列-系统服务实战正在更新文章目录前言一. tomcat的概述1.1 什么是tomcat1.2 tomcat的官网二. tomcat单…...

【图文详解】Unity存储游戏数据的几种方法

Unity3D存储游戏数据的方式1 PlayerPrefs: Unity自带的一种简单的键值存储系统2 ScriptableObject: Unity中最灵活的数据管理工具2.1 如何手动创建和修改数据文件2.2 ScriptableObject优缺点总结3 JSON: 轻量级的数据交换格式3.1 序列化与反序列化3.2 用JsonUtility对对象进行序…...

SESAM 安装教程

SESAM &#xff08;Super Element Structure Analysis Module&#xff09;是由挪威船级社&#xff08;DNV-GL&#xff09;开发的一款有限元分析&#xff08;FEA&#xff09;系统&#xff0c;它以 GeniE、HydroD 和 DeepC 等模块为核心&#xff0c;主要用于海工结构的强度评估、…...

语言文件操作

&#x1f331;博客主页&#xff1a;大寄一场. &#x1f331;系列专栏&#xff1a;C语言学习笔记 &#x1f618;博客制作不易欢迎各位&#x1f44d;点赞⭐收藏➕关注 目录 前言 C语言中的文件打开和关闭 文件指针 文件的打开和关闭 fclose 文件的顺序读写 fseek ftell …...

Java面试题--熔断和降级的区别

熔断和降级都是系统自我保护的一种机制&#xff0c;但二者又有所不同&#xff0c;它们的区别主要体现在以下几点&#xff1a; 概念不同 触发条件不同 归属关系不同 1.概念不同 1.1熔断概念 “熔断”一词早期来自股票市场。熔断&#xff08;Circuit Breaker&#xff09;也…...

阅读笔记5——深度可分离卷积

一、标准卷积 标准卷积在卷积时&#xff0c;同时考虑了特征图的区域和通道信息。 标准卷积的过程如图1-1所示&#xff0c;假设输入特征图的channel3&#xff0c;则每个卷积核的channel都为3&#xff0c;每个卷积核的3个channel对应提取输入特征图的3个channel的特征&#xff08…...

Microsoft Dynamics 365:导入License到服务层,通过Business Central Administration Shell

本文主要是Microsoft Dynamics 365的License导入的图解干货&#xff0c;不多赘述&#xff0c;直接上图&#xff1a;第一步&#xff1a;准备好的License文件放在你喜欢的目录下第二步&#xff1a;到开始程序里找到并打开 Business Central Administration Shell3.第三步&#xf…...

centos6.10安装FastDfs出错的问题

在centos6.10虚拟机安装dfs文件服务器时&#xff0c;安装报错&#xff0c;报错为&#xff1a; gcc: error trying to exec cc1’: execvp: 没有那个文件或目录 1.ping www.baidu.con 排查网络是否通 2.yum update 排查yum源是否可用 3.yum源地址不可用时&#xff0c;修改yu…...

基础组件之内存池

内存池技术 操作系统在运行进程的过程中&#xff0c;会产生内存碎片&#xff0c;降低了内存的使用率。内存池技术就是为了解决/减少内存碎片的一种方法&#xff0c;内部底层的具体实现根据不同业务场景使用不要的方式&#xff0c;以下是一种好理解的方式&#xff0c;供大家一起…...

前端面试题--了解并简单介绍一下typescript

前端面试题–了解并简单介绍一下typescript TypeScript是JavaScript的超集&#xff0c;具有可选的类型并可以编译为纯JavaScript。 从技术上讲TypeScript就是具有静态类型的 JavaScript 。 向JavaScript添加静态类型的原因是什么&#xff1f;我想原因至少有三个&#xff1a; …...

【pytorch】ModuleList 与 ModuleDict

ModuleList 与 ModuleDict1、ModuleList2、ModuleDict3、总结1、ModuleList 1&#xff09;ModuleList 接收一个子模块的列表作为输入&#xff0c;然后也可以类似 List 那样进行 append 和 extend 操作: net nn.ModuleList([nn.Linear(784, 256), nn.ReLU()]) net.append(nn.…...

Python错误和异常处理完全指南:从小白到高手的详细教程

本文全面讲解Python中的错误和异常处理机制,从基础概念到高级用法,帮你构建健壮的Python程序。 1. 为什么需要异常处理? 在编程中,错误是不可避免的。想象一下:你写了一个读取文件的程序,但文件不存在;或者计算用户输入的数据,但用户输入了字母而不是数字。没有异常处…...

android studio 解决git用户名和用户邮箱不一致的问题

原因&#xff1a;公司git代码提交&#xff0c;应该用的是公司的账号和邮箱&#xff0c;不要使用私人名称和邮箱&#xff1b;1、查看自己本地的git用户名、邮箱配置1.1、在用户目录下&#xff0c;文件名&#xff1a;.gitconfig1.2、打开后&#xff1a;[user]name zhangjian.***…...

强强联合:在快马平台用AI模型驱动你的下一代智能agent应用

最近在尝试用AI辅助开发时&#xff0c;发现了一个特别有意思的方向——智能agent框架。这类框架就像是AI应用的"骨架"&#xff0c;而平台内置的AI模型则为其注入了"灵魂"。今天想分享下在InsCode(快马)平台上实现的一个创作辅助agent&#xff0c;整个过程让…...

02-LangChain简单介绍、RAG开发

一、LangCain1、介绍LangChain由Harrison Chase创建于2022年10月&#xff0c;它是围绕LLMs&#xff08;大语言模型&#xff09;建立的一个框架。LangChain自身并不开发LLMs&#xff0c;它的核心理念是为各种LLMs实现通用的接口&#xff0c;把LLMs相关的组件“链接”在一起&…...

别再把AI当聊天机器人了:Claude Code之父的“15倍速”工程化工作流全拆解

在这个AI编程工具层出不穷的时代&#xff0c;大多数人还在纠结“哪家大模型的代码补全更准”&#xff0c;或者在对话框里一行行地复制粘贴代码。然而&#xff0c;Anthropic工程师、Claude Code的缔造者Boris Cherny最近在X上公开的一套工作流&#xff0c;直接震碎了开发者社区的…...

SecGPT-14B模型压力测试:验证OpenClaw高并发安全任务的稳定性

SecGPT-14B模型压力测试&#xff1a;验证OpenClaw高并发安全任务的稳定性 1. 测试背景与目标 最近在探索如何将OpenClaw与安全大模型结合&#xff0c;构建一个自动化安全分析助手。SecGPT-14B作为一款专注于网络安全的大模型&#xff0c;理论上可以处理端口扫描、日志分析等任…...

Windows硬件指纹修改指南:EASY-HWID-SPOOFER的实用解析

Windows硬件指纹修改指南&#xff1a;EASY-HWID-SPOOFER的实用解析 【免费下载链接】EASY-HWID-SPOOFER 基于内核模式的硬件信息欺骗工具 项目地址: https://gitcode.com/gh_mirrors/ea/EASY-HWID-SPOOFER 你是否曾因软件试用期结束而烦恼&#xff1f;是否担心网站通过硬…...

如何统计不同电话号码的个数?—位图法

在技术领域&#xff0c;我们常常被那些闪耀的、可见的成果所吸引。今天&#xff0c;这个焦点无疑是大语言模型技术。它们的流畅对话、惊人的创造力&#xff0c;让我们得以一窥未来的轮廓。然而&#xff0c;作为在企业一线构建、部署和维护复杂系统的实践者&#xff0c;我们深知…...

WenQuanYi Micro Hei:轻量级开源中文字体的跨平台部署与优化指南

WenQuanYi Micro Hei&#xff1a;轻量级开源中文字体的跨平台部署与优化指南 【免费下载链接】fonts-wqy-microhei Debian package for WenQuanYi Micro Hei (mirror of https://anonscm.debian.org/git/pkg-fonts/fonts-wqy-microhei.git) 项目地址: https://gitcode.com/gh…...

SMUDebugTool终极指南:如何深度调试AMD Ryzen处理器底层硬件

SMUDebugTool终极指南&#xff1a;如何深度调试AMD Ryzen处理器底层硬件 【免费下载链接】SMUDebugTool A dedicated tool to help write/read various parameters of Ryzen-based systems, such as manual overclock, SMU, PCI, CPUID, MSR and Power Table. 项目地址: http…...