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

Postgresql JSONB即将到来 现在用什么Hstore? JSON? EAV?,第1张

概述经过关系数据库/ NoSQL研究辩论后,我得出结论,我将继续推进PG作为我的数据存储。该决定的很大一部分是JSONB的声明达到9.4。我的问题是我现在应该怎么做,从头开始构建一个应用程序,知道我想迁移到(我的意思是现在使用!)jsonb?对我来说,DaaS选项将要运行9.3。 从我可以告诉我,如果我错了,纠正我,hstore会运行得更快一点,因为我会在hstore列中做很多关键字的查询,如果我使用 经过关系数据库/ 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之前,确定你要踢你的服务器的屁股,大量使用钥匙提取。但是要确定这一点,我会说,现在做一些基准测试与预期的查询量,看看哪些最适合你。

总结

以上是内存溢出为你收集整理的Postgresql JSONB即将到来 现在用什么Hstore? JSON? EAV?全部内容,希望文章能够帮你解决Postgresql JSONB即将到来 现在用什么Hstore? JSON? EAV?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/sjk/1171236.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-02
下一篇 2022-06-02

发表评论

登录后才能评论

评论列表(0条)

保存