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

前端之家收集整理的这篇文章主要介绍了Postgresql JSONB即将到来 现在用什么Hstore? JSON? EAV?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
经过关系数据库/ 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之前,确定你要踢你的服务器的屁股,大量使用钥匙提取。但是要确定这一点,我会说,现在做一些基准测试与预期的查询量,看看哪些最适合你。

原文链接:https://www.f2er.com/postgresql/193153.html

猜你在找的Postgre SQL相关文章