从我可以告诉我,如果我错了,纠正我,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?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)