第二章· MySQL体系结构管理
一.客户端与服务器模型

1.mysql是一个典型的C/S服务结构
1.1 mysql自带的客户端程序(/application/mysql/bin)
mysql
mysqladmin
mysqldump
1.2 mysqld一个二进制程序,后台的守护进程
单进程
多线程
2.应用程连接MySQL方式
TCP/IP的连接方式

套接字连接方式
思考:mysql -uroot -poldboy123是使用了哪个连接方式???
二.MySQL服务器构成
1 什么是实例
1.MySQL的后台进程+线程+预分配的内存结构。
2.MySQL在启动的过程中会启动后台守护进程,并生成工作线程,预分配内存结构供MySQL处理数据使用。
图1.1-word的打开方式

图1.2-mysqld的打开方式
2MySQLD服务器程序构成
mysqld是一个守护进程但是本身不能自主启动:
[root@db01 ~]# mysql -uroot -poldboy123
[root@db01 ~]# select user,host,password from mysql.user;
3 连接层
- 1、提供连接协议(socket、tcp/ip)
- 2、验证用户的合法性(用户名、密码、白名单)
- 3、提供一个专用连接线程(接收SQL、返回结果),将SQL语句交给SQL层继续处理
4 SQL层
- 1、接收到SQL语句,语法判断。
- 2、判断语义(判断语句类型:DML、DDL、DCL、DQL)
- 3、解析SQL语句,生成多种执行计划
- 4、优化器,选择他认为成本最低的执行计划。
- 5、执行器根据优化器的选择,按照优化器建议执行SQL语句,得到去哪儿找SQL语句需要访问的数据
5.1 具体:在哪个数据文件上的哪个数据页中?
5.2 将以上结果充送给下层继续处理 - 6、接收存储引擎层的数据,结构化成表的形式,通过连接层提供的专用线程,将表数据返回给用户。
- 7、提供查询缓存
7.1 query_cache, 使用memcache 或者redis 替代 - 8、日志记录(binlog)
5 存储引擎层
- 1、接收上层的执行结果
- 2、取出磁盘文件和相应数据
- 3、返回给SQL层,结构化之后生成表格,由专用线程返回给客户端
三.MySQL的结构
1 MySQL的逻辑结构(熟悉)
MySQL的逻辑对象:做为管理人员或者开发人员操作的对象
- 1、库
- 2、表:元数据+真实数据行
- 3、元数据:列+其它属性(行数+占用空间大小+权限)
- 4、列:列名字+数据类型+其他约束(非空、唯一、主键、非负数、自增长、默认值)
最直观的数据:二维表,必须用库来存放
MySQL逻辑结构与Linux系统对比
MySQL | Linux |
---|---|
库 | 目录 |
show databases; | ls-l / |
use mysql | cd /mysql |
表 | 文件 |
show tables; | ls |
二维表=元数据+真实数据行 | 文件=文件名+文件属性 |
2 MySQL的物理结构(了解)
1)MySQL的最底层的物理结构是数据文件,也就是说,存储引擎层,打交道的文件,是数据文件。
2)存储引擎分为很多种类(Linux中的FS)
3)不同存储引擎的区别:存储方式、安全性、性能
myisam:

innodb:

3 段、区、页(块)
- 1、段:理论上一个表就是一个段,由多个区构成,(分区表是一个分区一个段)
- 2、区:连续的多个页构成
- 3、页:最小的数据存储单元,默认是16k
第二章· MySQL体系结构管理的更多相关文章
- 第二章--MYSQL体系结构和管理
体系结构 MySQL C/S模型 Server : mysqld Client : socket:仅本地连接使用 tcp/ip:应用连接使用(远程和本地) #TCP/IP方式(远程.本地) mysql ...
- 第二章 MySQL入门篇
第一章 MySQL入门篇 一.MySql简介 简言: 和SQL Server数据库相同,MySQl也是一个关系型数据库管理系统.由瑞典的MySQL AB公司开发,2008年被SUN公司收购,2009年 ...
- HttpClient学习研究---第二章:连接管理
第二章.Connection management连接管理2.1. 2.1.Connection persistence连接持久性The process of establishing a conne ...
- 第1章 MYSQL 体系结构和存储引擎
一.定义数据库和实例 在集群的条件下,存在单个数据库对应多个实例 二.Mysql 体系结构 三.Mysql 存储引擎及各存储引擎之间的比较 命令:show engines; 四.连接 MySQL 4. ...
- MySQL基础之第15章 MySQL用户管理
15.2.账户管理 15.2.1.登录和退出MySQL服务器 mysql –hhostname|hostIP –P port –u username –p[password] databaseName ...
- 第六章· MySQL索引管理及执行计划
一.索引介绍 1.什么是索引 1)索引就好比一本书的目录,它能让你更快的找到自己想要的内容. 2)让获取的数据更有目的性,从而提高数据库检索数据的性能. 2.索引类型介绍 1)BTREE:B+树索引 ...
- 第二章 Mysql 数据类型简介--(整数类型、浮点数类型和定点数类型,日期与时间类型,字符串类型,二进制类型)
第一节:整数类型.浮点数类型和定点数类型 1,整数类型 2,浮点数类型和定点数类型 M 表示:数据的总长度(不包括小数点):D 表示:小数位:例如 decimal(5,2) 123.45存入数据的时候 ...
- .net架构设计读书笔记--第二章 设计体系结构
第五节 探索领域架构 一.领域驱动设计的价值与意义 最初在java中使用,.net要晚些才引入.领域驱动设计出现之初的争议.一个向导,少走弯路 1. 我们真的需要DDD吗? DDD并不适用于每个软 ...
- 第12章 MySQL高级管理
1.手动更新权限后,需向服务器指出已对权限进行修改: (在MySQL提示符下)flush privileges; 2.查看用户所拥有的权限: 如: show grants for bookorama; ...
随机推荐
- shell脚本:统计分析 /home/ 目录用户磁盘使用情况
一.统计单台机器 /home/ 目录下磁盘空间使用 top3 的用户 common.sh 脚本用于统计 /home/* 目录下存储空间 top3 的用户. du -sb /home/* |sort - ...
- React Native的ListView的布局使用
1> ListView组件用于显示一个垂直的滚动列表,其中的元素之间结构近似而仅数据不同. ListView更适于长列表数据,且元素个数可以增删.和ScrollView不同的是,ListView ...
- Nginx日志中的金矿
http://www.infoq.com/cn/articles/nignx-log-goldmine/
- JavaScript(7)——DOM
什么是 DOM? DOM是 Document Object Model(文档对象模型)的缩写 DOM是 W3C(万维网联盟)的标准. DOM 定义了访问 HTML 和 XML 文档的标准: “W3C ...
- itchat相关资料
https://itchat.readthedocs.io/zh/latest/ https://www.v2ex.com/t/306804 http://blog.csdn.net/th_num/a ...
- Linux中权限控制ACL命令
很多小伙伴觉得,Linux的权限管理命令不就是chown和chmod命令吗,什么时候有了ACL了? 什么是ACLACL是访问控制列表(Access Control List)的缩写,主要的目的是在提供 ...
- USACO 1.2 Friday the Thirteenth
注意闰月的部分细节很多. /* ID:Starry21 LANG:C++ TASK:friday */ #include<iostream> #include<string> ...
- Golang语言细节小结
前段时间,看了菜鸟入门,较浅的认识一下golang的语法习惯和规则,然后跟别人做了个爬虫项目,但是对于golang语言的语法结构还不是很懂.又看了遍<go实战>第二章. 构建程序在构建可执 ...
- poj2299(归并排序求逆序对)
题目链接:https://vjudge.net/problem/POJ-2299 题意:给定一个序列,每次只能交换邻近的两个元素,问要交换多少次才能使序列按升序排列. 思路:本质就是求逆序对.我们用归 ...
- 2019牛客暑期多校训练营(第五场)- G subsequence 1
题目链接:https://ac.nowcoder.com/acm/contest/885/G 题意:给定字符串s,t,求s中满足字典序大于t的子序列的个数. 思路:组合数学+dp.当子序列长度大于m时 ...