btree 详解1之索引与磁盘操作的关系

开发者 2024-9-12 19:40:36 82 0 来自 中国
先看两张图,了解一下从磁盘读取和存放数据的大致描述。

  • 读取数据
1.png 上图展示的是,磁盘中数据是如何存放的,即每道扇区的字节数为512B,那么按照上图的情况。

  • 数据存储
上图表示,如果用户表中,每一条记录大小为128Byte,而一个block为512Byte,所以读一次最多可以拿到4条记录,而假设需要读取100条记录的话 ,需要读取 100/4 = 25 次。
当数据查询引入索引

  • 引入索引
3.png 即类似查字典一样,创建一种新的格式内容,只记录id和具体的block地址位置,那么每当需要查询的时候就去先去找这个index表,然后再去具体的block查询具体的记录内容,因为index表每条记录占用空间较小,所以需要读取的次数就会变得很少。

  • 引入二阶索引
4.png 对于一阶索引的情况,如果数据量大了其实查询效率还是会大大增加的,那么如果按照一阶索引的情况,我们给索引表再建立二阶索引表,就又可以解决这样的一个问题了。
以此类推,不断添加索引层,以提升查找速率。

  • 转换为树的形式
如果觉得有收获,欢迎点赞和评论,更多知识,请点击关注查看我的主页信息哦~
您需要登录后才可以回帖 登录 | 立即注册

Powered by CangBaoKu v1.0 小黑屋藏宝库It社区( 冀ICP备14008649号 )

GMT+8, 2024-11-21 20:23, Processed in 0.162042 second(s), 35 queries.© 2003-2025 cbk Team.

快速回复 返回顶部 返回列表