每个数据库都必须解决同一个基本问题。
数据存储在磁盘上,而访问磁盘速度很慢。每一次读取和写入最终都必须到达磁盘,数据库如何组织磁盘上的数据决定了其性能的方方面面。
经过数十年的研究,目前已形成两种主要的研究方法。
-
B 树将数据在磁盘上保持有序,因此读取速度很快,但每次写入都会付出代价。
-
LSM 树将写入操作缓冲到内存中,然后批量刷新到磁盘,使得写入操作成本低,但读取操作成本较高。
两种方法各有优劣。它们代表了两种不同的方法,理解它们之间的权衡取舍是系统设计中最有用的思维模型之一。
在本文中,我们将详细介绍 B 树和 LSM 树,以及它们各自的优缺点。
磁盘访问问题
原文: https://blog.bytebytego.com/p/b-trees-vs-lsm-trees-comparison-and
