首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在键/值存储中存储对象-序列化值还是单独值?

在键/值存储中存储对象-序列化值还是单独值?
EN

Database Administration用户
提问于 2019-08-09 02:01:52
回答 1查看 526关注 0票数 1

我正在玩Go和BadgerDB,它是一个基于嵌入式磁盘的密钥/值存储(不是像Redis那样的内存中的)。一般来说,关于如何使用键/值存储的信息太少了。

我的主要问题基本上是:每个键存储一个实体/对象/项目是否更有意义?如下所示:

代码语言:javascript
复制
user:0 = {"email":"johndoe@example.com","password":"some-hash"}

还是把每个领域都单独存储起来?如下所示:

代码语言:javascript
复制
user:0:email = "johndoe@example.com"
user:0:password = "some-hash"

有人有这方面的经验吗?一种技术比另一种技术有一些性能优势吗?或者一个人有我还没想过的管理问题?还是还有什么要考虑的呢?

EN

回答 1

Database Administration用户

回答已采纳

发布于 2020-03-03 03:18:08

真的要看情况了。您已经确定了键->值设计(结构)的主要缺陷之一。

前面的示例更像是一个面向文档的数据库,它是键->值存储之上的额外实现。在文档中使用类似于JSON的内容是一种方法。一些面向文档的DB会为您优化/索引。

后一个例子更像是一种传统的key->value方法。

为了更具体地回答您的问题,将JSON字符串/对象存储为您的值的一个问题是,每次您想要访问该值的一部分时,通常都必须解析(并可能解压)整个过程。关键->价值设计的问题是缺乏结构,几乎所有东西都是平的.您将如何以这种方式表示类/对象,如果您有一个复杂的类/对象的网络,等等?

https://en.wikipedia.org/wiki/NoSQL#Types_和_示例

票数 1
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/244939

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档