注册
|
登录
发帖
热搜
活动
交友
discuz
论坛
BBS
翼度工具
翼度网址导航
开发工具
Linux命令速查
网页设计配色表
在线制作icon
颜色代码选取器
翼度科技
»
论坛
›
编程开发
›
mysql
›
查看内容
返回列表
发新帖
MySQL-InnoDB磁盘结构
一切都是借口
一切都是借口
当前离线
积分
30
10
主题
10
帖子
30
积分
新手上路
新手上路, 积分 30, 距离下一级还需 20 积分
新手上路, 积分 30, 距离下一级还需 20 积分
积分
30
发消息
显示全部楼层
主要阐述InnoDB存储引擎(MySQL5以后的默认引擎)。
数据库中最基本的组成结构是数据表,视觉上的表和其对应的磁盘结构如下:
此图参考了厦门大学课堂:
。但是视频中一些更多细节没有涉及,比如Leaf node segment和Non-leaf node segment其实就是叶子节点和非叶子节点段,
照inode,page相关概念,一颗B+树当然只有这两种段,来管理各种page(树节点)。信息较少,且看且珍惜。
更多关于tablespace的信息移步:
MySQL Tablespaces
**核心:MySQL以Page为单位进行数据管理(默认1个Page=16KB)。因为磁盘寻道原因,一次将读取1个Page到内存。即每次查询,一次IO至少是一个Page的数据被装载到内存。
将segment,extent,page的关系描绘如下:
Page的组成:
**page directory:提高records部分的查询速度(单链表-->排序-->二分查找)。定位到page后,records记录太长,设计了page directory的slot插槽,每个slot包含一段records记录,提高查找效率。
为什么一个Page是16KB?太大,page directory定位时间太长;太小,磁盘寻道时间变长,IO次数变多。这是一个折中值。(固态硬盘没有磁盘寻道,可以考虑将Page size的值改为小于16KB的更小的值,仍需要测试验证数据支撑)。
索引页:
MySQL中:每个索引都对应了一颗B+树。
聚集(聚集不一定是主键,但主键一定是聚集)索引对应了一颗B+树,叶子节点存储了数据;
非聚集(辅助)索引对应了一颗B+树,叶子节点只存储了主键,所以需要额外一次去聚集索引B+树查找所需数据(即回表)。
主键索引和辅助索引检索示意:
本文中部分图的来源在
这里
。
来源:
https://www.cnblogs.com/hangwei/p/16981472.html
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!
本帖子中包含更多资源
您需要
登录
才可以下载或查看,没有账号?
立即注册
x
上一篇:
MySql索引下推知识分享
下一篇:
MySQL中表锁和行锁机制浅析(源码篇)
发表于 2023-1-2 16:09:57
举报
回复
使用道具
分享
返回列表
发新帖
本版积分规则
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
快速回复
快速回复
返回顶部
返回顶部
返回列表
返回列表