第二章· 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; ...
随机推荐
- LVS系列一、LVS集群-NAT模式
一. 集群概述 1. 什么是集群? 一组各自相互独立且又相互依赖的,通过高速网络互联的计算机组成的一个计算机组, 以单一的系统模式加以管理, 为用户提供服务, 对用户来说, 用户只会认为对方是一个服务 ...
- Go项目实战:打造高并发日志采集系统(三)
前文中已经完成了文件的监控,kafka信息读写,今天主要完成配置文件的读写以及热更新.并且规划一下系统的整体结构,然后将之前的功能串起来形成一套完整的日志采集系统. 前情提要 上一节我们完成了如下目标 ...
- MMORPG服务器架构
MMORPG服务器架构 一.摘要 1.网络游戏MMORPG整体服务器框架,包括早期,中期,当前的一些主流架构2.网络游戏网络层,包括网络协议,IO模型,网络框架,消息编码等.3.网络游戏的场景管理,A ...
- Jmeter接口测试 2=> Jmeter工具的介绍
第一节 接口测试流程 参数化:EXCEl文件参数化.数据库参数化.直接代码中配置.配置文件 预处理请求(前置处理):对请求的参数进行预处理.准备,如加密数据.组织测试数据 发起请求:httpclien ...
- iOS UITextField限制输入字数
关于iOS的文本框有时需要限制字数,如手机号,在UITextField的代理单纯写一个判断,在字数超过限制时,这时再想删除就删除不掉,可以在代理这样写,就解决 - (BOOL)textField:(U ...
- C语言链表之两数相加
题目描述 给出两个 非空 的链表用来表示两个非负的整数.其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字. 如果,我们将这两个数相加起来,则会返回一个新的链表来表 ...
- HDFS之JAVAAPI
JAVAAPI 上传小文件 代码
- 关于c调用lua 对‘luaL_newstate()’未定义的引用的问题解决办法
#include <string.h>#include "lua.h"#include "lauxlib.h"#include "lual ...
- HDU 4417 【线段树+离线处理】
http://acm.hdu.edu.cn/showproblem.php?pid=4417 题意:找出给定区间内,有多少个数小于等于给定的数.用线段树维护的话会超时,要用到线段树的离线操作,对询问与 ...
- Dreamoon and Strings CodeForces - 477C (字符串dp)
大意: 给定字符串$s$, $p$, 对于$0\le x\le |s|$, 求$s$删除$x$个字符后, $p$在$s$中的最大出现次数. 显然答案是先递增后递减的, 那么问题就转化求最大出现次数为$ ...