mysql io次数_mysql底层存储及IO过程理解

本文介绍了MySQL InnoDB存储引擎的表空间、页、区、段的概念,详细解析了B+树索引的结构和磁盘IO次数。讨论了为何不建议将主键设置为UUID,主要是由于其插入效率低,不利于有序存储和索引。
摘要由CSDN通过智能技术生成

InnoDB维护了一个逻辑空间叫表空间

向上对接开发者,向下对接物理文件

当创建表时,会自动为表创建一个对应表名的表空间,并在数据库目录下生成一个“表名.ibd”的表空间文件。

存储结构

物理存储图  page页  extent区   sagement段    书页,一本书,一套书的关系

最小存储单元是页 , 一个页对应B+树一个节点

一个区包括多个页  ,一个段包括多个区

一个page默认大小16kb,区默认大小1M

1.innodb中io操作的最小单位。

2.每个页都有一个对应的从0开始的编号,这个编号叫做页号。因为表空间的数据文件会被划分成大小相等的页,所以知道页号,再根据文件的初始位置,就可以计算出页在磁盘中的准确地址。

3.一张表对应一个聚集索引,而聚集索引元数据中指定了root page的页号,因此Innodb引擎可以根据页号和页大小计算出索引B+树root page的准确地址,从而对整个表数据进行操作。

4.段、区都是为了管理空间的存储状态,为页分配空间服务,真正的查询只需要通过Page No和B+树中各级节点的关联关系就可以操作整个表物理空间上的数据。

从B+树索引来看

1.一个表的聚簇索引分为两个段,包含数据的叶子节点的数据段,不包含数据的节点的索引段

2.索引段的page存的是key+指针,数据段的page存的是数据行

3.一个page默认16k,一个索引段的page大约能存1170个索引指针(一个索引指针key占8字节,指针占6字节),

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值