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 包含诸如用户、特权、插件、帮助列表、事件、时区实现和存储例程之类的信息。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。