操作系统(一) -- 磁盘存储与数据库索引

本文参考存储术语,硬盘基础知识,从磁盘结构到数据库索引等

背景

当我们在深入学习数据库索引的时候会涉及到页,磁盘块等知识,所以借此机会回顾学习一下操作系统。

存储术语

  • 磁盘



    首先放出一张经典的图,然后给出一个计算公式:存储容量 = 磁头数 * 磁道数 * 每道扇区数 * 每扇区字节数。

  • 扇区
    扇区是磁道上的一个弧段,所以磁道是由多个弧段组成,一个片面上面有多个磁道。硬盘上的读写是以扇区为基本单位,通常情况下每个扇区的大小是512字节。扇区是磁盘最小的物理存储单元。

  • 磁盘块
    操作系统不直接与扇区交互,而是与由多个连续扇区组成的的磁盘块交互。磁盘块是操作系统所使用的逻辑概念,而非磁盘的物理概念,是文件系统读写数据的最小单位。


  • 页是内存的最小存储单位,磁盘块数据会加载到内存中进行操作,所以页的大小一般是磁盘块的2的n次方法倍。

数据库索引

  • Innodb
    因为Innodb支持事务,行级锁等特性成为了Mysql的默认存储引擎,InnoDB的页的大小为16KB,系统一个磁盘块的存储空间往往没那么大,InnoDB每次申请磁盘空间时都会是若干地址连续的磁盘块来达到页的大小16KB,InnoDB可以按照页的大小将磁盘数据读入到内存中,减少磁盘IO次数,提高查询效率。
    我们按照一个B+数索引来看一个主键索引INT4个B或者BIGINT8个B,指针类型一般也为4或8个B,也就是说一个页对应的连续磁盘块中大概储存1K个键值,那么深度为3的索引可以维护1K * 1K * 1K=10亿条记录。

你可能感兴趣的:(操作系统(一) -- 磁盘存储与数据库索引)