mysql-inndb原理

1、独立表空间     后缀名.ibd

     系统表空间

     一个表空间存储的数据容量计算:4字节记录页,大概是2的32次方个页,一页16KB , 合计容量:2^32 * 16kb = 64T

2、数据存储

     页(64)= 区     注:连续分配,按区分配 ,增加顺序读,减少随机读   ,一个页面大小:16KB

     区(256)= 组

     组 (2) = 段

     段 = 叶结点段+非页节点段      注:逻辑划分

3、innodbd三大特性

    1) 双写缓冲区/双写机制 (安全+性能)

             Flush技术-内存刷出到IO设备

             解决安全性问题,性能下降10%

              4 KB扇区写一页16KB需要写4次

             双写缓冲区写失败处理方案,部分页写入失败问题(性能慢):

             1)B+tree数据读取原始数据    2)redo日志恢复数据

             redolog记录每一个页面的物理操作,但是redo里面没有全量记录

             Max Row ID字段,全部表使用这一个自增长ID

 

    2)自适应哈希索引(Adaptive Hash Index, AHI)

         AHI的设计思想是数据库自优化,不需要DBA对数据库进行手动调整,只能选择开启或者关闭。我们可以通过如下命令查看innodb AHI的使用情况.

    3)Buffer pool

          一次至少加载一页,依据局部性原理,很快会被使用 

         innodb_buffer_pool_size 最小5M,缓存页  + 控制块  占用5%空间 

         free链表 把所有控制块连接起来,记录所有空闲页,加载页面时,先到free链表中读取,使用并移除

         Hash表 确认页是否在pool里面,value=页,key=表空间号+页号

         Flush链表: 脏页的处理

         LRU链表(最近最少使用Least Recently Used):BUfferpool不够用的时候,进行计算的算法,记录页的当前使用情况

        

  WAL 机制

https://www.cnblogs.com/mengxinJ/p/14211427.html

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值