当前位置: 首页 > 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 = 存储引擎名称;
http://www.lryc.cn/news/14367.html

相关文章:

  • Python日期时间模块
  • 学以致用——植物信息录入1.0(selenium+pandas+os+tkinter)
  • 什么是压敏电阻
  • Leetcode.901 股票价格跨度
  • vue入门(四)组件基础,$emits简单用法
  • VBA提高篇_27 OptionBOX_CheckBox_Frame_Image_VBA附加控件
  • STM32开发(11)----CubeMX配置独立看门狗(IWDG)
  • 医疗方案 | 星辰天合入选“2022智慧新医信优秀解决方案”
  • 【系统服务实战】tomcat服务的安装实战
  • 【图文详解】Unity存储游戏数据的几种方法
  • SESAM 安装教程
  • 语言文件操作
  • Java面试题--熔断和降级的区别
  • 阅读笔记5——深度可分离卷积
  • Microsoft Dynamics 365:导入License到服务层,通过Business Central Administration Shell
  • centos6.10安装FastDfs出错的问题
  • 基础组件之内存池
  • 前端面试题--了解并简单介绍一下typescript
  • 【pytorch】ModuleList 与 ModuleDict
  • Hive窗口函数语法规则、窗口聚合函数、窗口表达式、窗口排序函数 - ROW NUMBER 、口排序函数 - NTILE、窗口分析函数
  • Go设计模式之函数选项模式
  • ClickHouse 数据类型、函数大小写敏感性
  • nodejs基于vue 网上商城购物系统
  • 掌握MySQL分库分表(一)数据库性能优化思路、分库分表优缺点
  • 何为小亚细亚?
  • 【mircopython】ESP32配置与烧录版本
  • Yaml:通过extrac进行传参,关联---接口关联封装(基于一个独立YAML的文件)
  • vue - vue中对Vant日历组件(calendar)的二次封装
  • 详解C++的类型转换
  • NLP文本自动生成介绍及Char-RNN中文文本自动生成训练demo