存储相关概要1.4--读写性能取舍

引言

存储领域的读性能与写性能就像时间复杂度和空间复杂度一样,很多时候都是鱼和熊掌不可兼得。

1 常见的存储结构

数据存储在硬盘上,通过索引方式可以提高数据查询性能。现在比较流行的四种存储结构,即哈希LSMB树B+树

  • 哈希:哈希索引理论上是查找性能最优的存储结构,但是实际平均性能与哈希表长度有关。
  • LSM:LSM是写排序优先的一种存储结构。适合对读性能有限制的场景。
  • B树:B树是一种查询性能优先的存储结构,但导致产生大量随机写,所以写性能不及LSM。
  • B+树:B+树与B树类似,B+树是遍历查询最优的一种结构。

2 读写性能之争

哈希、LSM、B树和B+树这四种存储结构,其实是读性能与写性能的取舍,根本上是读排序与写排序谁优先的问题。写排序的意思就是写入先后排序;读排序就是查找排序,也就是索引排序。
大多数情况,写序与读序不一致,同时存储介质(特别是HDD)随机IO与追加IO的性能差异,使得我们不得不在写排序和读排序之间做一个平衡。
只有极少数情况是写序和读序一致,例如:数据写入按key1、key2、。。。、key n、。。。的顺序写入,且不会有随机写入的场景。这种只适合特点场景、不具备通用性!

猜你喜欢

转载自blog.csdn.net/fs3296/article/details/113620892