2.1 MYSQL服务结构
MysqL是一个典型的c/s模式,由服务端和客户端组成。
服务端:MysqLd
客户端:MysqL
客户端自带程序:MysqL,MysqLadmin,MysqLdump等
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的服务器程序构成
2.4.1 连接层
通信协议:TCP/IP
线程:连接数量
验证:用户名,用户密码
2.4.2 sql层
sql:结构化的查询语言(数据库内部的逻辑语言)
DDL:数据库定义语言
DCL:数据库控制语言
DML:数据库操作语言
DQL:数据查询语言
sql层的功能
1、判断
语法、语句、语义
语句类型:DQL select
2、数据库不能真正理解sql语句
必须明确的知道,数据在哪个磁盘的,哪个文件的哪个,哪个页上。
数据库对象授权情况进行检查。
3、解析(解析器)
将sql语句解析成N种执行计划
4、优化 (优化器)
5.6以后学习了oracle,基于代价算法,从N中执行计划中选择代价最小的交给“执行器”
5、“执行器”
运行执行计划
生成如何去磁盘找数据方式
6、将取数据获取的方式,交由下层(存储引擎层)进行处理
7、最终,将取出的数据抽象成 管理员或用户能看懂的方式(表),展现用户面前。
8、查询缓存:缓存之前查询的数据。假如我们查询的表是一个经常有变动的表,查询缓存不要设置太大。
sql处理流程:
2.4.3存储引擎层
存储引擎是充当不同表类型的处理程序的服务器组件。
存储引擎层的功能
存数据、取数据 (往磁盘上读写,相当于中介)
数据的不同存储方式
不同的管理方式:
事务(增、删、改)
备份恢复
高级功能(高可用的架构、读写分离架构)
特殊功能:
全文搜索
引用完整性
空间数据处理
存储引擎用于:
存储数据
检索数据
通过索引查找数据
双层处理
上层包括sql解析器和优化器
下层包含一组存储引擎
sql 层不依赖于存储引擎:
引擎不影响sql处理
有一些例外
2.5 MysqL逻辑结构(数据库内部结构)
逻辑构成是为了用户能够读懂数据出现的
管理数据的一种方式。
对象:
库中包含表,在linux中以目录表示
表中有列结构与行记录,在linux中以多个文件表示
行记录
列结构
2.6 MysqL的存储方式
程序文件随数据目录一起存储在服务器安装目录下。执行各种客户机程序、管理程序和实用程序时将创建程序可执行文件和日志文件。首要使用磁盘空间的是数据目录。
服务器日志文件和状态文件:
包含有关服务器处理的语句的信息。日志可用于进行故障排除、监视、复制和恢复。
InnoDB 日志文件:
(适用于所有数据库)驻留在数据目录级别。
InnoDB 系统表空间:
包含数据字典、撤消日志和缓冲区。
每个数据库在数据目录下均具有单一目录(无论在数据库中创建何种类型的表)。数据库目录存储以下内容:
数据文件:
特定于存储引擎的数据文件。这些文件也可能包含元数据或索引信息,具体取决于所使用的存储引擎。
格式文件 (.frm):
包含每个表和/或视图结构的说明,位于相应的数据库目录中。
触发器:
与某个表关联并在该表发生特定事件时激活的命名数据库对象。
数据目录的位置取决于配置、操作系统、安装包和分发。典型位置是 /var/lib/MysqL。
MysqL 在磁盘上存储系统数据库 (MysqL)。
MysqL 包含诸如用户、特权、插件、帮助列表、事件、时区实现和存储例程之类的信息。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。