MySQL物理存储结构

MySQL物理存储结构 (段 区 页)

磁盘结构

在这里插入图片描述

盘片

在这里插入图片描述

扇区

在这里插入图片描述

柱面 \ 磁头(来回摆动, )

在这里插入图片描述
详细块级区分

  • 一个扇区为 512字节(B)
  • 一个block为 4KB(连续的8个扇区)
  • 一个页为 16KB(连续的4block)
  • 一个区(蔟)为 1MB(连续的64个页)
  • 一个表就是一个段, 可以有1个或者多个区构成

分配空间是连续的分配一段一段的(顺序io)

OS kernel 读取磁盘数据

文件系统 ext4 xfs

存储方式

  • 物理存储结构
    • l
  • 内存存储结构
    • 每个成功男人背后都有一个为他默默付出的女人,而对于MySQL来说,这个“女人”就是InnoDB存储引擎。
    • 缓冲池
      缓存表数据与索引数据,把磁盘上的数据加载到缓冲池,避免每次访问都进行磁盘IO,起到加速访问的作用。
      速度快,那为啥不把所有数据都放到缓冲池里?
      凡事都具备两面性,抛开数据易失性不说,访问快速的反面是存储容量小:
      (1)缓存访问快,但容量小,数据库存储了200G数据,缓存容量可能只有64G;
      (2)内存访问快,但容量小,买一台笔记本磁盘有2T,内存可能只有16G;
      因此,只能把“最热”的数据放到“最近”的地方,以“最大限度”的降低磁盘访问。
    • 数据页和索引页
      Page是Innodb存储的最基本结构,也是Innodb磁盘管理的最小单位,与数据库相关的所有内容都存储在Page结构里。Page分为几种类型,数据页和索引页就是其中最为重要的两种类型。
    • 两次写(Double Write)
      如果操作系统在将页写入磁盘的过程中发生了崩溃,在恢复过程中,InnoDB存储引擎可以从共享表空间中的doublewrite中找到该页的一个副本,将其复制到表空间文件中,再应用重做日志。
    • 重做日志(Redo Log Buffer)
      事物讲

事务

当多个用户访问同一数据时,一个用户在更改数据的过程中可能有其它用户同时发起更改请求,为保证数据的一致性状态,MySQL 引入了事务。

  • 什么是事物
    在这里插入图片描述
  • 事务ACID标准特性介绍
    在这里插入图片描述
  • 事务生命周期管理
    在这里插入图片描述
  • 自动提交功能
    在这里插入图片描述
  • 应用场景
    • autocommit = 1 无需再用begin 和 commit
    • 在这里插入图片描述
  • 隐式事务控制
    在这里插入图片描述
  • redo
    在这里插入图片描述
    在这里插入图片描述
    每一次落16KB 在高并发情况下代价比较高

变化日志 只记录 变化

WAL优先写原则

redo log file,但是还没有fsync,这时候是处于黄色的位置,处于系统缓存。调用fsync,真正写入磁盘。

  • 发生crash情况
    在这里插入图片描述
    在这里插入图片描述
    CKPT:为了保证数据一致性, 立即落盘保证LSN版本号一致
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值