【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 = 存储引擎名称;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值