MYSQL企业级应用二体系结构

2.1 MYSQL服务结构
MysqL一个典型的c/s模式,由服务端和客户端组成。
服务端:MysqLd
客户端:MysqL
客户端自带程序:MysqLMysqLadmin,MysqLdump等

MYSQL企业级应用(二)体系结构


2.2 MysqL连接方式
TCP/IP连接方式
MysqL -uroot -p123456 -h IP
套接字连接(也可以称为网络套接字连接)
MysqL -uroot -p123 -S /tmp/MysqL.sock
sock是可以在/etc/my.cnf中自己指定目录
像我们常用的MysqL -uroot -p123456 就是采用套接字连接的
2.3 MysqL的启动过程
启动后台守护进程,并生成工作线程
预分配内存结构供MysqL处理数据使用
2.4 MysqLD的服务器程序构成

MYSQL企业级应用(二)体系结构


2.4.1 连接层

MYSQL企业级应用(二)体系结构


通信协议:TCP/IP
线程:连接数量
验证:用户名用户密码
2.4.2 sql

MYSQL企业级应用(二)体系结构


sql结构化查询语言(数据库内部的逻辑语言)
DDL:数据库定义语言
DCL:数据库控制语言
DML:数据库操作语言
DQL:数据查询语言
sql层的功能
1、判断
语法、语句、语义
语句类型:DQL select
2、数据库不能真正理解sql语句
必须明确的知道,数据在哪个磁盘的,哪个文件的哪个,哪个页上。
数据库对象授权情况进行检查。
3、解析(解析器)
sql语句解析成N种执行计划
4、优化 (优化器)
5.6以后学习了oracle,基于代价算法,从N中执行计划中选择代价最小的交给“执行器”
5、“执行器”
运行执行计划
生成如何去磁盘找数据方式
6、将取数据获取的方式,交由下层(存储引擎层)进行处理
7、最终,将取出的数据抽象成 管理员用户能看懂的方式(表),展现用户面前。
8、查询缓存:缓存之前查询的数据。假如我们查询的表是一个经常有变动的表,查询缓存不要设置太大。
sql处理流程:

MYSQL企业级应用(二)体系结构


2.4.3存储引擎层
存储引擎是充当不同表类型的处理程序的服务器组件。

MYSQL企业级应用(二)体系结构


存储引擎层的功能
存数据、取数据 (往磁盘上读写,相当于中介)
数据的不同存储方式
不同的管理方式:
事务(增、删、改)
备份恢复
高级功能(高可用的架构、读写分离架构)
特殊功能
全文搜索
引用完整性
空间数据处理
存储引擎用于:
存储数据
检索数据
通过索引查找数据
双层处理
上层包括sql解析器和优化器
下层包含一组存储引擎
sql 层不依赖于存储引擎:
引擎不影响sql处理
有一些例外
2.5 MysqL逻辑结构(数据库内部结构)
逻辑构成是为了用户能够读懂数据出现的
管理数据的一种方式。
对象:
库中包含表,在linux中以目录表示
表中有列结构与行记录,在linux中以多个文件表示
行记录
列结构
2.6 MysqL的存储方式
程序文件随数据目录一起存储在服务器安装目录下。执行各种客户机程序、管理程序和实用程序时将创建程序可执行文件和日志文件。首要使用磁盘空间的是数据目录。
服务器日志文件和状态文件
包含有关服务器处理的语句的信息。日志可用于进行故障排除、监视、复制和恢复。
InnoDB 日志文件
(适用于所有数据库)驻留在数据目录级别。
InnoDB 系统表空间:
包含数据字典、撤消日志和缓冲区。
每个数据库在数据目录下均具有单一目录(无论在数据库中创建何种类型的表)。数据库目录存储以下内容
数据文件
特定于存储引擎的数据文件。这些文件也可能包含元数据或索引信息,具体取决于所使用的存储引擎。
格式文件 (.frm):
包含每个表和/或视图结构的说明,位于相应的数据库目录中。
触发器:
与某个表关联并在该表发生特定事件时激活的命名数据库对象。
数据目录的位置取决于配置、操作系统、安装包和分发。典型位置是 /var/lib/MysqL
MysqL 在磁盘上存储系统数据库 (MysqL)。
MysqL 包含诸如用户、特权、插件、帮助列表、事件、时区实现和存储例程之类的信息。

相关文章

MySQL 死锁 是指两个或多个事务互相等待对方持有的锁,从而导...
在MySQL中,InnoDB引擎通过Next-Key Locking技术来解决幻读问...
在数据库事务管理中,Undo Log 和 Redo Log 是两种关键日志,...
case when概述 sql语句中的case语句与高级语言中的switch语句...
其实很简单,只是为了忘记,做个记录,用的时候方便。 不管是...
1.进入服务,找到mysql服务,在属性里找到mysql的安装路径 2...