一.客户端与服务器模型

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. Linux 查看 MySQL的版本信息

    Linux 查看 MySQL的版本信息 如何查看某台 Linux 主机上的 安装的 MySQL版本信息? 使用如下命令,查看 MySQL的版本信息: mysql -V 或者 mysql --versi ...

  2. php上传文件夹 ​

    用过浏览器的开发人员都对大文件上传与下载比较困扰,之前遇到了一个php文件夹上传下载的问题,无奈之下自己开发了一套文件上传控件,在这里分享一下.希望能对你有所帮助. 以下是实例的部分脚本文件与代码: ...

  3. k8s-高可用多主master配置

    准备主机 centos7镜像 node1: 192.168.0.101 node2: 192.168.0.102 node3: 192.168.0.103 vip: 192.168.0.104 配置s ...

  4. Windows10系统python环境下安装Dlib库(转载,蔡军帅亲测可用)

    Dlib是一个很优秀的机器学习库,最近做人脸识别要用到这个库,简要记录一下配置过程,准备工作: 1.python环境 2.安装好pip(这里有个简单的安装教程) 3.Dlib包,贴一个我安装的版本,链 ...

  5. lumen中间件中设置响应header

    <?php namespace App\Http\Middleware; use Closure; class BeforeMiddleware { public function handle ...

  6. Array.prototype.filter()

    1. filter() 方法:创建一个新的数组,新数组中的元素是通过检查指定数组中符合条件的所有元素 ——filter() 不会对空数组进行检测 ——filter() 不会改变原始数组 2. 语法: ...

  7. 前台请求响应json

    <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding= ...

  8. liunx 中如何删除export设置的环境变量

    1,网上有资料说,export命令添加的环境变量,利用export -p 删除: 例如:export  KUBECONFIG="/etc/kubernetes/admin.conf" ...

  9. Android Service 入门

    说明 Service 工作在主进程上.生命周期图 两种状态 Started 比如Activity通过调用startService 方法.一旦被启动(Started),服务就永久在后台运行,即使创建他的 ...

  10. Mac下安装SecureCRT客户端并激活

    1. 先下载SecureCRT和破解文件 默认下载到了当前用户的”下载”目录中 2. 在”Finder”中 打开 “scrt-7.3.0-657.osx_x64.dmg” 并将 SecureCRT复制 ...