第三章 体系结构和物理存储结构

本文详细介绍了MySQL体系结构,包括连接方式(TCP和Socket),程序结构中SQL层的功能划分,以及InnoDB和MyISAM等默认存储引擎的物理存储结构。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

第三章 体系结构和物理存储结构

1,体系结构

1.1,连接方式(c/s结构)

#TCP模式
远程或本地	mysql  -uroot  -pxxxxx  -h  ipaddress  -P3306

#Socket模式
本地		mysql -uroot  -pxxxxx  -S  /tmp/mysql.sock

1.2,实例介绍

#实例=mysqld后台守护进程+Master Thread +干活的Thread + 预分配的内存

#如:公司=老板+经理+员工+办公室

1.3,MySQL的程序结构

image.png

一条SQL语句的执行过程

#连接层
	1. 提供链接协议:TCP、Socket
	2. 提供验证:用户、密码、IP、Socket
	3. 提供专业链接线程:接收用户SQL,返回结果
	注:通过下面的语句可以查看链接线程的基本情况
mysql> show  processlist;
#SQL层(重点)
1,接受上传传输来的SQL语句

2,语法验证模块,验证SQL语句的语法

3,语义检查:判断SQL语句类型
(1)DDL
(2)DQL
(3)DML
(4)DCL

4,权限检查:用户对库,表有没有权限

5,解释器:进行SQL语句的预处理,生成解析树(执行计划)

6,优化器:根据解析器得出的多种执行计划,进行判断,选择最优的执行计划
   代价模型:资源(CPU、IO、MEM)的损耗评估性能好坏

7, 执行器:根据最优执行计划,执行SQL语句,产生执行结果。
执行结果:在磁盘的XXXXX位置上

8,提供查询缓存(默认是没有开启的),会使用redis tai 替代查询缓存功能

9,提供日志记录(详见日志管理章节),默认没有
#存储引擎层
类似于Linux中的文件系统

负责根据SQL层的执行结果,从磁盘上拿数据。
将16进制的磁盘数据,交由SQL层结构化为表。
连接层的专用线程将其返回给用户。

1.4,逻辑结构

库:

  • 库名
  • 库属性(权限,数据类型等等)

表:

  • 表名

  • 属性

  • 行(记录)

  • 列(字段)

    • 列名
    • 属性(类型,长度,约束等等)

2,物理存储结构

1,库:目录

2,表:

以mysql.user表为例:

MyISAM(一种存储引擎)的表:
user.frm -- 列的相关信息
user.MYD -- 数据行
user.MYI  -- 索引信息

image.png

3,默认引擎(InnoDB)存储关系:

  • 表 段:一个表就是一个段,包含一个或多个区
  • 区:包含一个或多个连续的页
  • 页:最小的IO单元

)]

3,默认引擎(InnoDB)存储关系:

  • 表 段:一个表就是一个段,包含一个或多个区
  • 区:包含一个或多个连续的页
  • 页:最小的IO单元
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值