关键值数据库设计

时间:2018-02-02 07:52:15

标签: database key-value key-value-store leveldb

对于我正在开发的项目,我需要持久化键值对。我测试了为此目的而开发的一些现有数据库,但最后我想出了自己的实现。一种非常简单的方法,其中'key'是文件的名称,'value'是其内容。进行一些性能测试我可以看到它与其他此类数据库的关系,如果不是更好的话。最后,它是关于操作系统对文件系统的访问时间。当然,我最终会在特定目录中包含大量文件,但运行此数据库所需的内存并不像您可以映像一样。

在研究了其他数据库的内部结构后,我得出的结论是,大多数数据库都保留了一个包含所有值的大文件,并指向了每个数据库的指针,以便他们可以按要求检索数据当他们删除一对以重新组织指针和空间时,做一些魔术。

因为我们打算在生产中使用这个项目,所以我要求使用标准产品,因为“它不能比标准产品更好”,但是,除了创建大量文件,删除,插入和迭代所有值或键在速度方面仍然可与任何其他数据库相媲美。

与其他标准产品相比,您认为我的方法有任何其他缺点吗?或者使用后期的任何好处?

1 个答案:

答案 0 :(得分:-1)

为什么“生产”数据库“更好”:

  1. 保证ACID支持
  2. 状况
  3. 易于管理:角色,迁移,分区,镜像等
  4. 您不必花时间进行开发,测试和支持
  5. 你的解决方案缺乏上面提到的一切。企业数据库适用于企业解决方案,因为您可以在一定程度上信任它们并获得您需要或需要的内容,而无需花费时间和保证。