MySQL-体系结构及授权管理

时间:2022-05-24 01:57:48

一、MySQL体系结构

1.1、mysql C/S模型

主要有两种连接mysql的方式:

  • 1)TCP/IP
  • 2)Socket

MySQL-体系结构及授权管理

mysql -uroot -pmysql -h 10.0.0.51   #TCP/IP
mysql -uroot -pmysql -S /tmp/mysql.sock  #socket

1.2、mysql实例概念

MySQL-体系结构及授权管理

分布式系统架构中会使用多实例:在一个系统上要起多个mysql。

mysqld守护进程 Master thread worker thread 专用内存 ====>实例

实例 数据 ====>完整的数据库管理系统

多实例==完整的数据库管理系统*n

1.3、mysql工作过程

一条SQL语句的执行过程:select user,authentication_string,host from mysql.user;

MySQL-体系结构及授权管理

1.3.1、连接层工作原理

(1) 提供连接协议 
	TCP/IP
	Socket
(2) 提供用户验证模块,加载授权表(mysql.user)
	user 
	password
(3) 提供连接线程
	负责:所有会话相关的命令接收及回馈

1.3.2、SQL层工作原理

#SQL语言种类
SQL :结构化的查询语言
DDL :数据定义语言
DCL :数据控制语言
DML :数据操作语言
DQL :数据查询语言
每一类语言,都有专门的模块来负责

#SQL层工作原理 
(1) 验证语句语法(SQL 92, 99,移植性),SQL_MODE
(2) 权限验证模块
(3) 语义验证模块
(4) 专用SQL解析器,SQL语句执行的方法(explain)
(5) 优化器:选择一个代价最低的执行计划
代价:CPU MEM IO
(6) 执行器:根据优化器的选择最优的执行计划,执行SQL语句,得出执行结果.
(7) 提供查询缓存:query_cache ,现在一般用redis产品替代query_cache
(8) 提供查询(变更类)日志:binlog 

1.3.4、存储引擎层工作原理

多种存储引擎,以插件形式支持.
不同存储引擎就像,不同的文件系统一样,提供不同数据存取模式.
InnoDB: 一张表就是一个文件, .ibd文件,一个段,区,数据页(16K)
存储引擎根据,SQL层提供的执行结果,结构化层表的形式,返回给用户

1.4、mysql逻辑结构

MySQL-体系结构及授权管理

1.5、mysql物理结构

1)对于Linux操作系统来讲,他的物理层是同柱面的扇区.

2)对于MySQL来讲,他是Linux系统之上的应用软件,他的物理层就是文件系统上的特定格式的文件,由MySQL<存储引擎>决定的

对于myisam引擎来说:

  • user.frm :表的列结构
  • user.MYD :数据行记录
  • user.MYI :表的索引

对于innodb引擎来说:(注意:mysql8.0中已经没有.frm文件了

  • t1.frm :表列的结构
  • t1.ibd :数据行记录和索引