PostgreSQL 再次引入了 HStore

  • Jonathan Allen
  • 孙镜涛

2013 年 11 月 14 日

话题:架构

PostgreSQL 9.4 将会再次引入 HStore 作为文档类型数据的可选列类型。它取代了 PostgreSQL 在版本 9.0 中引入的 JSON 支持。作为一种基于字符串的表示,JSON 比二进制结构的 HStore 要慢很多。同时通过添加布尔类型和整型的支持,新的 HStore 在语义上等价于 JSON。在实际应用中,这样做能够仅通过一个类型转换操作符完成不同格式之间的双向转化。

最初的 HStore 格式要回溯到 2003 年,那时候引入它还仅仅是为了存储键 - 值对。在这个版本之前,我们还不能使用它来存储类树结构的数据,例如从 JSON 中发现的那些。

早期的性能测试结果很理想。根据Oleg Bartunov 和 Teodor Sigaev 提供的介绍,PostgreSQL 的新 HStore 格式在数据加载测试上击败了 MongoDB,结果是 76 秒对 8 分钟。使用良好调整的索引读取时,PostgreSQL 运行测试花费了 0.672 毫秒,而 MongoDB 花费了 1 毫秒。当然,这些报告都是 PostgreSQL 提供的,还需要由外部的研究者验证。

查看英文原文Reintroducing Hstore for PostgreSQL

架构