
但是,我已经读过Jsonb数据类型随着键的添加而变慢,我的架构需要使用主键和外键引用.
我想知道是否在自己的列中使用主键/外键(以标准的关系数据库方式)然后为其余数据使用Jsonb列将是有益的,否则会导致问题(无论是现在还是未来)?
简而言之,会:
table car(ID int,manufacturer_ID int,data Jsonb)
表现好于或差于:
table car(data Jsonb)
特别是在经常查找外键时?
从性能或架构的角度来看,第一个会有缺点吗?
PRIMARY KEY或 FOREIGN KEY约束中涉及的所有值存储为专用列(最好采用标准化形式).约束和引用不适用于嵌套在Json / Jsonb列中的值. 至于其他数据:这取决于.将它们置于Jsonb(优选地)值内部具有存储非结构化文档类型数据的众所周知的优点和缺点.
对于存在于所有行或大多数行的属性,将它们作为单独的列存储将更可能更好(更快,更清洁,更小的存储).索引更容易,查询也更简单.即使新的Jsonb具有@L_403_3@,索引专用列仍然更简单/更快.
对于很少使用或动态显示的属性,或者如果要在数据库内部没有多少处理的情况下存储和检索JsON值,请查看Jsonb.
对于主要使用字符数据的基本EAV structures,没有嵌套且没有与JsON的连接,我会考虑hstore.还有@L_301_6@(更复杂和冗长)和Json数据类型(大多数被Jsonb取代),它们正在失势.
以上是内存溢出为你收集整理的jsonb和主/外键:在PostgreSQL中表现更好?全部内容,希望文章能够帮你解决jsonb和主/外键:在PostgreSQL中表现更好?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)