PostgreSQL 让人着迷的地方,不在于他比某些数据库的流行,也不在于比某些数据库的高“贵”, 更不如某些数据库的“简单”。Postgresql   让人无法自拔的是他的”多端变化”, 用开发的角度来说,叫多态性。

PG本身支持着太多的数据的类型充分体现了他的多态性,其中hstore数据类型,这是一种以键值为目的的数据存储和提取的方式。在非结构化,半结构化数据横行的今天,除了MONGODB 让人“羡慕嫉妒恨”,以外能想到的好像也只有PG了,在支持json, josnb下的PG另类hstore数据类型是否多余,还是对多种应用提供了更良好的支持,的需要去check一下。

先建立一个POSTGRESQL 的hstore类型,是骡子,还是千里马,的出来溜溜。

我们插入一条数据

insert into hstore_test (id,name,history) values (1,'postgresql','from => "IBM_Research",origination => "inges",time => "1970"')

可以看到与JSON 格式对比,hstore 在处理比较随意的数据上,也是有点意思。

SELECT name, history->'from' as history FROM hstore_test  WHERE history->'origination' = 'inges';

想必做到这里,如果是开发人员,会觉得有点意思,并且是骡子,是千里马,反正不是“驴”。从开发人员的角度,这样处理数据的方式,键值不要太随便。

说道这时候,估计马上会有人跳出来,这不科学呀,这怎么加索引,这怎么在大数据量下查询,这就是“儿戏”。

普及一下POSTGERSQL 的“科学”, 因为POSTGRESQL 的索引类型从来不贫瘠, GIN GIST 索引类型,妥妥的支持这样变态的类型,一个能让%like% ,都能走索引,百万数据毫秒出结果的数据库,怕过谁。

那具体在数据库的维度上,问题的关注点可能会转移到,是否有什么案例可以说明这个数据库的字段类型(或许叫字段类型表达不了,这个类型的内涵),在实际当中的意义。

首先有需要声明

这个类型不是要代替或者与JSON 类型进行竞争,换句话hstore 类型是JSON,JSONB 的一种有益的补充,当你在产生某些数据的情况下,无法对其进行合理的二维表格以及关系的描述,或者你的数据不存在嵌套的关系,或需要处理复杂的嵌套关系。在这样的情况下还有一些,非传统的二维表格的需求。hstore 其实是一个很好的补充和支持。

那下面就举一个例子:

例如我们有一个在线介绍家用汽车的网站,我们其中的每种汽车,其实都可能有很多熟悉

我们一边建表,一边来举这个例子

create table car_info(

id serial primary key,

productor varchar(20),

car_name varchar(50),

product_time timestamp,

car_type smallint,

tag hstore

);

这里hstore存储的数据其实是可以通过json + mongodb的方式来进行数据存储,毋庸置疑的是MONGODB 在JSON处理上的能力,以及便捷性,尤其对待要求数据量巨大,并且对处理的速度要求很高的情况下,MONGODB可以说是JSON里面的唯一选项。

那这里POSTGRESQL的 hstore 扮演了一个什么样的角色

1 在传统数据库表里面会涉及到一些,非结构化的数据

2 在某些需求不明确,但需要为了争取市场,快速上线(比如这个tag ,其实可能需求方面会一直变化,某一种车的标签会随着市场,销售情况,以及车商,等等诸多原因进行变化,而使用其他数据库的任何字段类型来处理这样的情况要不就是不合适,要不就是太麻烦)

3 所以postgresql 的 hstore 是在数据量较少,介于想使用MONGODB,但又没有特别大的需求和数据量的情况下,需要灵活应对项目中的需求变动频繁时的一个好的技术方法,来规避后期的频繁改动表结构,字段长度,以及一些,让需求,开发,运维都头痛的后续工作。

所以POSTGRESQL 的 hstore 是一个在传统数据库中,非结构化,半结构化的良好的解决方案。

我们还可以在这个字段上加索引,并且方便的更新,或删除数据,这些功能在其他的数据库上是很难相信能够做到的。

当然这个类型还有很多的功能,感兴趣的可以去check 一下,也许会在某些项目上帮到你,快速的满足需求,并且省时省力, 借用我的前半生,贺函风格的一句话, 作为一个DB的工作者, 你的职责是服务于你的公司,提供专业的,更高效的数据库去为企业服务,加速程序开发速度,降低开发中程序员遇到的困难,并解决他,哪种数据库不是重点,重点是解决问题。

re这里

PostgreSQL 变化多端的使者 你猜不透的 hstore相关推荐

  1. 『设计模式』小老弟你猜不透我?-- 代理模式

    23种设计模式+额外常用设计模式汇总 (持续更新) 代理模式 代理模式(proxy)模式给某一个对象提供一个替身或占位符,以控制对这个对象的访问. 所谓代理,就是一个人或者一个机构代表另一个人或者另一 ...

  2. 如何开发一个能拯救银河系的充电器

    吴工主业是做电源的.每次千辛万苦地做出一个产品,兴高采烈地拿到客户那里介绍 客户却总是一副见多识广不以为然的样子- 吴工想扭转这一局面,决定拿同事设计的一款充电器改造一下.这个产品是2017年面世,是 ...

  3. O2O产品经理,请多关注屏幕之外

    本文来自易到用车的产品经理张贤玮(微博 ID@小屋贤玮) 情绪上说,做 O2O 业务的 PM,要求甚高,常感精力不够用.商业模式要琢磨,老板的想法也要听:客户意见要收集,司机表达也要理:数据报表需要看 ...

  4. 2022年大数据开发实习面经总结,已拿顺丰、哔哩哔哩offer

    本人是一个双非硕士在读地研二狗,非科班出身,最近也是参加了大数据开发地面试,已拿到了哔哩哔哩和顺丰的大数据开发岗实习offer,现在把自己的面试经历分拨记录下来,记录了面试各个公司的问题和心经,给正在 ...

  5. 一篇文章讲清楚交叉熵和KL散度

    每天给你送来NLP技术干货! 转载自 | PaperWeekly 作者 | 康斯坦丁 研究方向 | 信号处理与人工智能 看了很多讲交叉熵的文章,感觉都是拾人牙慧,又不得要领.还是分享一下自己的理解,如 ...

  6. 请领导过目文件怎么说_出差在外,领导的同学请吃饭,问你“去不去”,会来事说3个话术...

    张珺陪领导出差到外地,第一天公务宴请,第二天下午,领导问他,"今晚,我朋友请客,你去不去?"张珺心想表现的机会来了,赶紧说,"我陪您去,顺便替您买单."领导笑了 ...

  7. 为什么你总被人蹭网?谈谈WiFi破解的两三事

    [PConline 杂谈]自从无线路由器开始流行,蹭网也成为了一个热门的话题.的确,很多朋友对路由器不甚了解,路由器买回来也只是按照向导设置以下,能用就行.这导致一些用户在不知不觉中,对路由器进行了错 ...

  8. 穷则心怀天下,达则兼济天下

    穷则独善其身,达则兼济天下,我还是很喜欢这两句话的,在创立丐帮的时候,把这两句话作为了丐帮的帮训印在了丐帮Tshit的正面和背面.我现在还是一个穷人,和我一起在丐帮的弟兄们也都是穷人,我们现在还富有的 ...

  9. 女孩子怎么倒追男孩子?

    1.首先明确,女孩子不能倒追男孩子:其次女孩子不能在性关系上更开放,增大自己成功的概率:再次女孩子长的丑天然有竞争劣势. 2.女孩子倒追男孩子,不是说要主动追击,而是利用自己天然的优势,制造一种势,让 ...

最新文章

  1. 调整cisco参数设置
  2. 设置SpringMVC默认首页启动
  3. mysql+百万+中间表_MYSQL优化
  4. 程序员如何掌握新技术与时俱进
  5. python ppt自动生成目录_利用python-pptx库读写操作PPT,批量自动生成或修改的PPT
  6. Java实现八大排序算法
  7. Java 静态代理
  8. com.android.dx.cf.iface.ParseException
  9. w ndows7错误恢复,windows7错误恢复进不去,windos错误恢复打不开
  10. 移动端调用微信和支付宝的扫一扫功能
  11. PIC16F887 单片机 信号发生器 波形发生器 PCF8591
  12. 零基础学习IT技术是有技巧的
  13. 格式塔理论的四个原则_使用格式塔理论改善用户体验
  14. 【coq】函数语言设计 笔记 11 - rel
  15. win7开机弹计算机,win7开机弹出Windows Installer窗口的解决方法
  16. 盘点 | 2023年最值得学的编程语言TOP 5,Python再度夺冠!
  17. 韩顺平java制作记事本_2011-05-21——Java从入门到精通(韩顺平)自己整理的笔记(包括记事本的开发)...
  18. 给黑白照片上色软件神器
  19. MPLS隧道——跨域解决方案A、B讲解
  20. 用Java调用中国网建提供的SMS短信平台接口实现向移动端发送短信

热门文章

  1. linux修改网卡名称(一般修改为eth0)(redHat7)
  2. 迪赛智慧数——柱状图(堆叠柱状图):各年龄段人群服装消费频次
  3. 小米路由器开ssh方法
  4. 云计算ACP弹性计算服务(一)
  5. 关于KindEditor 编辑器中表格的问题
  6. 神灯系统2020—10.25
  7. 看完这首诗,你还要躺平吗
  8. 学习笔记07渲染路径+阴影
  9. CCAI 2020 | 唐杰:从感知走向认知的机器学习
  10. 忆暖行动|“儿孙自有儿孙福,咱开开心心的就好”迟到的小幸福