海量数据的读写对磁盘访问造成巨大压力,很多时候磁盘是系统最严重的瓶颈.
- 机械硬盘VS固态硬盘
机械硬盘通过马达驱动磁头臂,带动磁头到指定的磁盘位置访问数据,由于每次访问数据都需要移动磁头,因此机械硬盘在数据连续访问和随机访问时性能差距巨大。
固态硬盘又称作SSD或Flash硬盘,数据访问速度快,而且功耗和噪音小。
- B+树VS LSM树
为了改善数据访问特性,文件系统或者数据库系统通常会对数据排序后存储,加快数据检索速度。传统的关系数据库做法是使用B+数。
目前数据库多采用两级索引的B+树。目前许多NoSQL产品采用LSM树作为主要数据结构。
在需要进行读操作时,总是从内存中排序树开始搜索如果没有找到,就从磁盘上的排序树顺序查找。
在LSM树上进行一次数据更新不需要磁盘访问,在内存中即可完成,速度远快于B+树。当数据访问以写操作为主,而读操作则集中在最近写入的数据上,使用LSM树可以极大地降低磁盘的访问次数,加快访问速度。
- RAID vs HDFS
RAID(廉价磁盘冗余阵列)技术主要是为了改善磁盘的访问延迟,增强磁盘的可用性和容错能力。通过使用RAID技术,实现数据在多块磁盘上的并发读写和数据备份。