# RocksDB：写入 - 续

![`smart`](RocksDBWrite02_aa_001_20220511.png)

------------------------------------------------------------
RocksDB是一种使用日志结构合并树（LSM树）数据结构的键值数据库，可提供高效的写入和快速的点查找。磁盘上的文件被组织成多个层次，最新的数据存储在Level-0（L0）层中。随着L0中的数据增长，它会定期被压缩到下一层（L1）中的较大文件中，以此类推。这样可以实现高效的写入和磁盘上数据的高效存储。

当执行写操作时，数据首先会写入`write-ahead logging`（WAL）以确保持久性，然后再添加到内存中的MemTable中。MemTable中的数据会定期以排序字符串表（SST文件）的形式刷新到磁盘上，这些文件按键进行组织。这样可以实现快速的点查找和高效的磁盘存储。

当执行删除或更新操作时，会在MemTable中添加一个标志来表明该键已被删除或更新。这个标志用于在执行读取操作时过滤掉已删除或更新的键。实际的删除或更新操作是在压缩过程中完成的，当MemTable数据合并到磁盘上的SST文件中时。

总之，RocksDB使用WAL用于持久性、MemTable用于高效写入以及LSM树用于快速点查找和高效磁盘存储，以提供高效可靠的CRUD操作。