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

jsonb和主/外键:在PostgreSQL中表现更好?

发布时间:2020-12-13 16:15:32 所属栏目:百科 来源:网络整理
导读:我正在考虑将PostgreSQL的jsonb列类型用于新的后端项目,该项目主要用作REST-ful JSON API.我相信PostgreSQL的jsonb非常适合这个项目,因为它会给我JSON对象,而不需要在后端进行转换. 但是,我已经读过jsonb数据类型随着键的添加而变慢,我的架构需要使用主键和
我正在考虑将PostgreSQL的jsonb列类型用于新的后端项目,该项目主要用作REST-ful JSON API.我相信PostgreSQL的jsonb非常适合这个项目,因为它会给我JSON对象,而不需要在后端进行转换.

但是,我已经读过jsonb数据类型随着键的添加而变慢,我的架构需要使用主键和外键引用.

我想知道是否在自己的列中使用主键/外键(以标准的关系数据库方式)然后为其余数据使用jsonb列将是有益的,否则会导致问题(无论是现在还是未来)?

简而言之,会:

table car(id int,manufacturer_id int,data jsonb)

表现好于或差于:

table car(data jsonb)

特别是在经常查找外键时?
从性能或架构的角度来看,第一个会有缺点吗?

必须将 PRIMARY KEYFOREIGN KEY约束中涉及的所有值存储为专用列(最好采用标准化形式).约束和引用不适用于嵌套在json / jsonb列中的值.

至于其他数据:这取决于.将它们置于jsonb(优选地)值内部具有存储非结构化文档类型数据的众所周知的优点和缺点.

对于存在于所有行或大多数行的属性,将它们作为单独的列存储将更可能更好(更快,更清洁,更小的存储).索引更容易,查询也更简单.即使新的jsonb具有amazing index capabilities,索引专用列仍然更简单/更快.

对于很少使用或动态显示的属性,或者如果要在数据库内部没有多少处理的情况下存储和检索JSON值,请查看jsonb.

对于主要使用字符数据的基本EAV structures,没有嵌套且没有与JSON的连接,我会考虑hstore.还有xml(更复杂和冗长)和json数据类型(大多数被jsonb取代),它们正在失势.

(编辑:李大同)

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

    推荐文章
      热点阅读