zoukankan      html  css  js  c++  java
  • 对PostgreSQL数据库的hstore类型建立GisT索引的实验

    磨砺技术珠矶,践行数据之道,追求卓越价值
    回到上一级页面:PostgreSQL基础知识与基本操作索引页    回到顶级页面:PostgreSQL索引页
    [作者 高健@博客园  luckyjackgao@gmail.com]

    由于数据少,执行计划中没有使用Index Scan

    postgres=# CREATE TABLE items (
    postgres(#   itemid serial NOT NULL PRIMARY KEY,
    postgres(#   itemname text NOT NULL,
    postgres(#  tags hstore);
    NOTICE:  CREATE TABLE will create implicit sequence "items_itemid_seq" for serial column "items.itemid"
    NOTICE:  CREATE TABLE / PRIMARY KEY will create implicit index "items_pkey" for table "items"
    CREATE TABLE
    postgres=# 
    postgres=# INSERT INTO items (itemname, tags) VALUES ('item1', 'color => red, category => stuff');
    INSERT 0 1
    postgres=# 
    postgres=# INSERT INTO items (itemname, tags) VALUES ('item2', 'color => green, category => manager');
    INSERT 0 1
    postgres=# 
    postgres=# CREATE INDEX hstoreidx ON items USING gist(tags);
    CREATE INDEX
    postgres=# 
    postgres=# SELECT itemname FROM items WHERE tags @> 'color=>red';
     itemname 
    ----------
     item1
    (1 row)
    
    postgres=# SELECT itemname FROM items WHERE tags @> 'color=>green';
     itemname 
    ----------
     item2
    (1 row)
    
    postgres=# SELECT itemname FROM items WHERE tags @> 'color=>blue';
     itemname 
    ----------
    (0 rows)
    
    postgres=# EXPLAIN  SELECT itemname FROM items WHERE tags @> 'color=>red';
                          QUERY PLAN                      
    ------------------------------------------------------
     Seq Scan on items  (cost=0.00..1.02 rows=1 width=32)
       Filter: (tags @> '"color"=>"red"'::hstore)
    (2 rows)
    
    postgres=# 
    postgres=# SELECT itemname FROM items WHERE tags ? 'color';
     itemname 
    ----------
     item1
     item2
    (2 rows)
    
    postgres=# EXPLAIN SELECT itemname FROM items WHERE tags ? 'color';
                          QUERY PLAN                      
    ------------------------------------------------------
     Seq Scan on items  (cost=0.00..1.02 rows=1 width=32)
       Filter: (tags ? 'color'::text)
    (2 rows)
    
    postgres=# 

     

    [作者 高健@博客园  luckyjackgao@gmail.com] 
    回到上一级页面:PostgreSQL基础知识与基本操作索引页    回到顶级页面:PostgreSQL索引页
    磨砺技术珠矶,践行数据之道,追求卓越价值

  • 相关阅读:
    [Linux] git send-email的使用
    Linux 下 grep 命令常用方法简介
    Scikit-learn的kmeans聚类
    python 基础知识
    Python
    xgboost 特征选择,筛选特征的正要性
    阿里菜鸟-算法(一面)
    基于Ranking-CNN的年龄识别(CVPR_2017)
    基于多输出有序回归的年龄识别(CVPR_2016)
    在caffe中用训练好的 caffemodel 来分类新的图片所遇到的问题
  • 原文地址:https://www.cnblogs.com/gaojian/p/3351469.html
Copyright © 2011-2022 走看看