一.客户端与服务器模型

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体系结构管理的更多相关文章

  1. 第二章--MYSQL体系结构和管理

    体系结构 MySQL C/S模型 Server : mysqld Client : socket:仅本地连接使用 tcp/ip:应用连接使用(远程和本地) #TCP/IP方式(远程.本地) mysql ...

  2. 第二章 MySQL入门篇

    第一章 MySQL入门篇 一.MySql简介 简言: 和SQL Server数据库相同,MySQl也是一个关系型数据库管理系统.由瑞典的MySQL AB公司开发,2008年被SUN公司收购,2009年 ...

  3. HttpClient学习研究---第二章:连接管理

    第二章.Connection management连接管理2.1. 2.1.Connection persistence连接持久性The process of establishing a conne ...

  4. 第1章 MYSQL 体系结构和存储引擎

    一.定义数据库和实例 在集群的条件下,存在单个数据库对应多个实例 二.Mysql 体系结构 三.Mysql 存储引擎及各存储引擎之间的比较 命令:show engines; 四.连接 MySQL 4. ...

  5. MySQL基础之第15章 MySQL用户管理

    15.2.账户管理 15.2.1.登录和退出MySQL服务器 mysql –hhostname|hostIP –P port –u username –p[password] databaseName ...

  6. 第六章· MySQL索引管理及执行计划

    一.索引介绍 1.什么是索引 1)索引就好比一本书的目录,它能让你更快的找到自己想要的内容. 2)让获取的数据更有目的性,从而提高数据库检索数据的性能. 2.索引类型介绍 1)BTREE:B+树索引 ...

  7. 第二章 Mysql 数据类型简介--(整数类型、浮点数类型和定点数类型,日期与时间类型,字符串类型,二进制类型)

    第一节:整数类型.浮点数类型和定点数类型 1,整数类型 2,浮点数类型和定点数类型 M 表示:数据的总长度(不包括小数点):D 表示:小数位:例如 decimal(5,2) 123.45存入数据的时候 ...

  8. .net架构设计读书笔记--第二章 设计体系结构

    第五节 探索领域架构 一.领域驱动设计的价值与意义 最初在java中使用,.net要晚些才引入.领域驱动设计出现之初的争议.一个向导,少走弯路   1. 我们真的需要DDD吗? DDD并不适用于每个软 ...

  9. 第12章 MySQL高级管理

    1.手动更新权限后,需向服务器指出已对权限进行修改: (在MySQL提示符下)flush privileges; 2.查看用户所拥有的权限: 如: show grants for bookorama; ...

随机推荐

  1. memcached-slab内存管理

    一.Memcache内存分配机制 关于这个机制网上有很多解释的,我个人的总结如下. Page为内存分配的最小单位. Memcached 的内存分配以page为单位,默认情况下一个page是1M,可以通 ...

  2. XLSX.js 导出Excel demo

    GitHub:https://github.com/SheetJS/js-xlsx 一个js操作Excel的工具,如下代码,很方便的就将json数据导出为Excel文件. 使用示例: //json 数 ...

  3. LeetCode.1217-交换芯片(Play with Chips)

    这是小川的第次更新,第篇原创 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第270题(顺位题号是1217).There are some chips, and the i-th ch ...

  4. webdriver的八种定位

    转自https://zhuanlan.zhihu.com/p/54588889 在UI层面的自动化测试开发中,元素的定位与操作是基础,也是经常遇到的困难所在.webdriver提供了8种定位: 1. ...

  5. 整合AD RMS与EX 2010。

    1.点击开始菜单, 选择所有程 序,展开 Mi cros oft  Excha nge  Server  2010 ,打开Excha nge Ma na gement Cons ol e,选择收件人配 ...

  6. 酷Q插件_SDK———入门与使用

    1.这里使用的是易语言的SDK,所以请看不惯的人自行离开.{wymbf.} 1.2 这里不会直接给你工程,请用动手打代码,动脑思考. 1.3 不知道.不了解酷Q是干嘛的,请访问:https://cqp ...

  7. 【计算机视觉】Histogram of Oriented Gridients(HOG) 方向梯度直方图

    Histogram of Oriented Gridients(HOG) 方向梯度直方图 Histogram of Oriented Gridients,缩写为HOG,是目前计算机视觉.模式识别领域很 ...

  8. vue中打包之后的dist文件不放在服务器的根目录下

    在工作当中,我使用webpack打包的dist,由于管理的问题,无法被放在服务器根目录下 ,但在目前的vue配置,dist不放在根目录下,访问页面会成为一片空白,于是便要对vue框架的config进行 ...

  9. XSS练习平台- https://alf.nu/alert1

    https://alf.nu/alert1   参考:https://www.cnblogs.com/renzongxian/p/5617551.html   我目前的进度:https://alf.n ...

  10. c++面向对象程序设计第四章课后习题

    这是书上的习题,我使用的是VS2010运行编译的 原习题: 4.有两个矩阵a和b,均为两行三列.求两个矩阵之和.重载运算符“+”,使之能用于矩阵相加.如c=a+b. #include<iostr ...