← 返回文章列表

ARTICLE

LevelDB简介

LevelDB是Google开源的持久化KV单机数据库,具有很高的随机写,顺序读/写性能,但是随机读的性能很一般。适用场景是查询较少,而写很多的场景。LevelDB应用了LSM(Log Structured Merge)策略,LSM_TREE 对索引变更进行延迟及批量处理,并通过一种类似于归并排序的方式高效的将更新迁移到磁盘,降低索引插入开销。

LevelDB简介

LevelDB是Google开源的持久化KV单机数据库,具有很高的随机写,顺序读/写性能,但是随机读的性能很一般。适用场景是查询较少,而写很多的场景。LevelDB应用了LSM(Log Structured Merge)策略,LSM_TREE 对索引变更进行延迟及批量处理,并通过一种类似于归并排序的方式高效的将更新迁移到磁盘,降低索引插入开销。

根据LevelDB官方网站的描述,LevelDB的特点和限制如下:

特点:

  1. key和value都是任意长度的字节数组;
  2. 数据根据key有序存储;
  3. 调用者可以提供自定义比较功能来覆盖排序顺序;
  4. 基本操作是Put(key,value),Get(key),Delete(key);
  5. 多个更改操作可以作为一个原子操作进行;
  6. 用户可以创建一个瞬时快照,以获得一致的数据视图;
  7. 在数据上支持向前和向后迭代;
  8. 适用Snappy压缩库自动压缩数据;
  9. 外部活动(如文件系统操作等)通过虚拟接口进行中继,因此用户可以自定义与操作系统的交互。

限制:

  1. 这不是SQL数据库。它没有关系数据模型,它不支持SQL查询,并且它不支持索引。
  2. 在同一时刻只能有一个进程(可能是多线程)访问一个特定的数据库;
  3. 在库中没有内置客户端-服务器支持。需要这种支持的应用程序将不得不将自己的服务器包装在库中。