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

PostgreSQL何以支持丰富的NoSQL特性?

发布时间:2018-10-11 11:11:43 所属栏目:站长百科 来源:DBAplus社群
导读:副标题#e# 【新品产上线啦】51CTO播客,随时随地,碎片化学习 作者介绍 谭峰,网名francs,中国开源软件推进联盟PostgreSQL分会特聘专家,《PostgreSQL实战》作者之一,《PostgreSQL 9 Administration Cookbook》译者之一。现就职于浙江移动负责应用上云架

jsonb上的GIN索引支持@>、?、 ?&、?|操作符,例如以下查询将会使用索引:

  1. SELECT * FROM tbl_user_jsonb WHERE user_info @> '{"user_name": "1_frans"}' 

但是以下基于jsonb键值的查询不会走索引idx_gin,如下所示:

  1. SELECT * FROM tbl_user_jsonb WHERE user_info->>'user_name'= '1_francs'; 

如果要想提升基于jsonb类型的键值检索效率,可以在jsonb数据类型对应的键值上创建索引,如下所示:

  1. CREATE INDEX idx_gin_user_infob_user_name ON tbl_user_jsonb USING btree ((user_info ->> 'user_name')); 

创建以上索引后,上述根据user_info->>'user_name'键值查询的SQL将会走索引。

二、JSON与JSONB读写性能测试

前面介绍了jsonb数据类型索引创建相关内容,本部分将对json、jsonb读写性能进行简单对比。json与jsonb读写性能存在差异,主要表现为json写入时比jsonb快,但检索时比jsonb慢,主要原因为:

(编辑:网站开发网_安阳站长网)

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