Dev.to | 📄 原文链接 | 2026-07-21 收录

构建 SaarDB 第三部分:压缩

来源:dev.to — Jul 20

📋 概述

Gagandeep Singh Ahuja 继续他的从零构建数据库系列。LSM 树在写入时追加新 SSTable 文件,但随着文件数量增长,读放大(一个 GET 要搜索所有 1000 个文件)和空间放大(同一键的旧版本占用空间)成为严重问题。解决方案是压缩:定期合并多个 SSTable,只保留每个键的最新值,生成一个新的整合文件。

🔑 核心要点

💡 金句

每写入一个键 100 次,就存储了 100 个副本。1000 次 memtable 刷写 = 1000 个 SSTable 文件。追加写入虽然快,但垃圾会随时间累积。
← 返回 Dev.to 首页