MySQL 为什么InnoDB要使用B+ Tree索引

本文探讨了磁盘I/O在数据库索引中的重要性,解释了内存和磁盘读取的差异。重点分析了磁盘读取过程中的寻道时间和旋转时间,并指出B+ Tree索引利用磁盘预读特性,通过顺序存储减少I/O操作,从而提高检索效率,适合InnoDB存储引擎。
摘要由CSDN通过智能技术生成

前言

一般来说,索引本身也很大,不可能全部存储在内存中,因此索引往往以索引文件的形式存储到磁盘上。这样的话,索引查找过程中就要产生磁盘I/O消耗,相对于内存存取,I/O存取的消耗要高几个数量级,所以评价一个数据结构作为索引的优劣最重要的指标就是在查找过程中磁盘I/O操作次数的渐进复杂度。 换句话说,索引的结构组织要尽量减少查找过程中磁盘I/O的存取次数。

一.内存读取

简单点说说内存读取,内存是由一系列的存储单元组成的,每个存储单元存储固定大小的数据,且有一个唯一地址。当需要读内存时,将地址信号放到地址总线上传给内存,内存解析信号并定位到存储单元,然后把该存储单元上的数据放到数据总线上,回传。

写内存时,系统将要写入的数据和单元地址分别放到数据总线和地址总线上,内存读取两个总线的内容,做相应的写操作。

内存存取效率,跟次数有关,先读取A数据还是后读取A数据不会影响存取效率。

二.磁盘读取

磁盘读取先后顺序会极大的影响读取效率。磁盘I/O涉及机械操作。这里有一篇非常详细的文章介绍磁盘结构简单理解磁盘结构

磁盘的结构

在这里插入图片描述

  • 盘片:磁盘有多个盘片,每个盘片有正反两
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值