加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Postgresql JSONB即将到来 现在用什么Hstore? JSON? EAV?

发布时间:2020-12-13 16:40:35 所属栏目:百科 来源:网络整理
导读:经过关系数据库/ NoSQL研究辩论后,我得出结论,我将继续推进PG作为我的数据存储。该决定的很大一部分是JSONB的声明达到9.4。我的问题是我现在应该怎么做,从头开始构建一个应用程序,知道我想迁移到(我的意思是现在使用!)jsonb?对我来说,DaaS选项将要运
经过关系数据库/ NoSQL研究辩论后,我得出结论,我将继续推进PG作为我的数据存储。该决定的很大一部分是JSONB的声明达到9.4。我的问题是我现在应该怎么做,从头开始构建一个应用程序,知道我想迁移到(我的意思是现在使用!)jsonb?对我来说,DaaS选项将要运行9.3。

从我可以告诉我,如果我错了,纠正我,hstore会运行得更快一点,因为我会在hstore列中做很多关键字的查询,如果我使用plain json我不会不能利用索引/ GIN等等。但是我可以利用json嵌套,但运行任何查询将会很慢,用户会感到沮丧。

那么,我建立我的应用程序在当前版本的hstore或json数据类型,“好ol”EAV或其他?我应该以某种方式构建我的数据库和应用程序代码?任何建议将不胜感激。我相信别人可能会面临同样的问题,因为我们正在等待PostgreSQL的下一个官方发布。

关于我要构建的应用程序的一些额外的细节:

– 关系关系(下面有一个例外)
– 社交网络方面(团体,朋友,喜欢,时间表等)
基于具有可变用户分配属性的单个对象,可能是10或1000(这是无模式设计需要的地方)

提前感谢任何投入!

这取决于。如果您希望有大量用户,非常高的交易量或每个查询的精确度属性获取,我会说使用HSTORE。但是,如果您的应用程序将开始小型化,随着时间的推移而增长,或者拥有相对较少的事务来获取属性,或者只是每个查询获取几个,那么使用JSON。即使在后一种情况下,如果您没有获取许多属性,但是经常在查询的WHERE子句中检查一个或两个键,则可以创建一个功能索引来加快速度:
CREATE INDEX idx_foo_somekey ON foo((bar ->> 'somekey'));

现在,当您有WHERE栏 – >> somekey,它应该使用索引。

当然,使用嵌套数据和升级到jsonb将会更容易。

所以我会倾向于JSON,除非你知道在你有机会升级到9.4之前,确定你要踢你的服务器的屁股,大量使用钥匙提取。但是要确定这一点,我会说,现在做一些基准测试与预期的查询量,看看哪些最适合你。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读