加入收藏 | 设为首页 | 会员中心 | 我要投稿 常州站长网 (https://www.0519zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

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

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

创建如下索引:

  1. mydb=> CREATE INDEX idx_gin_search_json ON tbl_user_search_json USING  gin(to_tsvector('english',user_info));  
  2. CREATE INDEX 

索引创建后,再次执行以下SQL,如下所示:

  1. mydb=> EXPLAIN ANALYZE SELECT * FROM tbl_user_search_json WHERE to_tsvector('english',user_info) @@ to_tsquery('ENGLISH','KTU89H');  
  2. Bitmap Heap Scan on tbl_user_search_json (cost=50.75..7876.06 rows=5000 width=104) (actual time=0.024..0.024 rows=1 loops=1)  
  3. Recheck Cond: (to_tsvector('english'::regconfig, user_info) @@ '''ktu89h'''::tsquery)  
  4. Heap Blocks: exact=1  
  5. -> Bitmap Index Scan on idx_gin_search_json (cost=0.00..49.50 rows=5000 width=0) (actual time=0.018..0.018 rows=1 loops=1)  
  6. Index Cond: (to_tsvector('english'::regconfig, user_info) @@ '''ktu89h'''::tsquery)  
  7. Planning time: 0.113 ms  
  8. Execution time: 0.057 ms  
  9. (7 rows) 

从上述执行计划看出走了索引,并且执行时间降为0.057毫秒,性能非常不错。

这一小节前一部分对PostgreSQL全文检索的实现做了简单介绍,并且给出了一个英文检索的例子,后一部分通过示例介绍了PostgreSQL10的一个新特性,即全文检索支持json、jsonb类型。

四、总结

本文介绍了PostgreSQL的NoSQL特性,首先介绍了json和jsonb数据类型,之后通过示例对比json、jsonb数据类型读写性能差异,最后介绍了PostgreSQL全文检索对json、jsonb类型的支持(PostgreSQL 10新特性);值得一提的是,PostgreSQL对中文全文检索也是支持的,有兴趣的读者可自行测试。

【编辑推荐】

  1. 为什么开发人员必须要了解数据库锁?
  2. 阿里云数据库再添新成员,企业级MariaDB正式开卖!
  3. MySQL数据库性能优化的八种方式,你可能都没用过!
  4. 区块链,一种数据库技术
  5. 读完这篇文章,就基本搞定了Redis数据库
【责任编辑:庞桂玉 TEL:(010)68476606】
点赞 0

(编辑:常州站长网)

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

热点阅读