请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

B-TREE索引在访问时可以把磁盘随机读取的IO转变成顺序的IO?

B-TREE索引在访问时可以把磁盘随机读取的IO转变成顺序的IO,这个是为什么呢?
数据在磁盘中的物理位置不一定是顺序存储的,怎么就能顺序读取了呢?

正在回答 回答被采纳积分+3

1回答

sqlercn 2019-10-08 09:49:27

数据存储是随机的,但是索引是按顺序存储的,可以先从索引中进行查询然后再去取具体的数据。

0 回复 有任何疑惑可以回复我~
  • 提问者 p_h #1
    磁盘读取数据不是寻道加旋转么?
    假如数据1在磁道1的1扇区,数据2在磁道2的2扇区,通过索引知道了这两个数据的位置,去获取数据的时候也是需要从磁盘0磁道找到2磁道才行吧?这就算顺序IO了么?
    回复 有任何疑惑可以回复我~ 2019-10-08 10:32:31
  • sqlercn 回复 提问者 p_h #2
    顺序IO是指逻辑上的顺序,读取索引和读取数据是两个过程,索引逻辑上是顺序的,数据库可以利用索引对数据先进行过滤,然后再跟据需要再读取物理数据,读取物理数据时还是随机IO。
    回复 有任何疑惑可以回复我~ 2019-10-08 16:23:09
  • 提问者 p_h 回复 sqlercn #3
    既然使用索引与否,最终在磁盘上物理查询都一样,为什么使用索引速度要快些呢?
    难道快就仅仅指的是逻辑上查找变快了?
    还是说索引有什么特别方式引用数据,索引过滤后,在磁盘上查找时间会更少?
    回复 有任何疑惑可以回复我~ 2019-10-09 11:41:47
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信