PostgreSQL hstore 列性能提升案例

PostgreSQL 支持hstore 来存放KEY->VALUE这类数据, 其实也类似于ARRAY或者JSON类型。  要高效的使用这类数据,当然离不开高效的索引。我们今天就来看看两类不同的索引对于同一种检索请求的性能问题。

假如我们有这样一个原始表,基于str1字段有一个BTREE索引。

t_girl=# \d status_check;
          Table "ytt.status_check"
 Column |        Type          | Modifiers
--------+-----------------------+-----------
 is_yes | boolean              | not null
 str1  | character varying(20) | not null
 str2  | character varying(20) | not null
Indexes:
    "index_status_check_str1" btree (str1)

里面有10W条记录。 数据大概如下,

t_girl=# select * from status_check limit 2;
 is_yes | str1 |        str2       
--------+------+----------------------
 f      | 0    | cfcd208495d565ef66e7
 t      | 1    | c4ca4238a0b923820dcc
(2 rows)


Time: 0.617 ms
t_girl=#

存放hstore类型的status_check_hstore 表结构,基于str1_str2字段有一个GIST索引。

Table "ytt.status_check_hstore"
  Column  |  Type  | Modifiers
-----------+---------+-----------
 is_yes    | boolean |
 str1_str2 | hstore  |
Indexes:
    "idx_str_str2_gist" gist (str1_str2)

t_girl=# select * from status_check_hstore limit 2;
 is_yes |          str1_str2         
--------+-----------------------------
 f      | "0"=>"cfcd208495d565ef66e7"
 t      | "1"=>"c4ca4238a0b923820dcc"
(2 rows)


Time: 39.874 ms

更多详情见请继续阅读下一页的精彩内容

------------------------------------华丽丽的分割线------------------------------------

CentOS 6.3环境下yum安装PostgreSQL 9.3

PostgreSQL缓存详述

Windows平台编译 PostgreSQL

Ubuntu下LAPP(Linux+Apache+PostgreSQL+PHP)环境的配置与安装

Ubuntu上的phppgAdmin安装及配置

CentOS平台下安装PostgreSQL9.3

PostgreSQL配置Streaming Replication集群

------------------------------------华丽丽的分割线------------------------------------

PostgreSQL 的详细介绍请点这里
PostgreSQL 的下载地址请点这里

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/6848e0e65c2a89715e4c094b2c924d0d.html