一、数据库服务工作模型¶
数据库服务在实际应用过程中,是采用C/S(客户端/服务端)模型方式进行工作的;并利用socket(套接字)与TCP/IP建立连接通信;
- 客户端部分:
| 序号 | 客户端工具 | 相关软件命令 |
|---|---|---|
| 01 | 数据库自带客户端命令(管理人员) | mysql、mysqladmin、mysqldump |
| 02 | 第三方软件客户端工具(开发人员) | sqlyog、navicat、workbench |
| 03 | 应用程序客户端连接器(API) | pymysql、gomysql、php-mysql、libmysqlclient.jar |
- 服务端部分:
| 序号 | 服务端进程 | 备注说明 |
|---|---|---|
| 01 | mysqld | 服务端处理客户端连接请求进程 |
- 连接方式:
| 序号 | 连接方法 | 备注说明 |
|---|---|---|
| 01 | 本地方式连接 | 利用socket文件实现本地连接数据库服务(本地unix套接字) |
| 02 | 远程方式连接 | 利用TCP/IP方式实现远程连接数据库服务(网络socket方式) |

二、数据库服务实例构成¶
数据库服务实例就是程序运行工作的一种方式,会占用一定的内存资源和CPU资源,并且会派生出多个线程完成不同的任务需求;
MySQL实例 = mysqld + master thread监控管理 + 具体干活的thread(IO/SQL/Purge...) + 预分配的内存结构
简单来说:mysql实例就是占用内存资源的统称,利用mysql实例可以对数据进行处理;
实例工作示意图:

课程知识补充:内存结构介绍说明
| 序号 | 组成部分 | 作用说明 |
|---|---|---|
| 第00部分 | 内核预留内存 | 主要保证系统正常运行内存空间 |
| 第01部分 | RSS 常驻内存集(Resident Set Size) | 主要提供给进程 线程使用 |
| 第02部分 | page cache 页缓存部分 最大区域(buffer cache) | 主要提供给数据进行缓冲 |
| 第03部分 | anon page 匿名页部分 最小区域 | 主要处理中间数据(临时数据) |
说明:在系统中运行mysql服务时,会在RSS和page cache内存区域进行预留,提供数据库服务运行和数据存储使用