zoukankan      html  css  js  c++  java
  • 【PostgreSQL-9.6.3】物化视图

    PostgreSQL 9.3 以后出现了物化视图。物化视图是由实实在在的数据组成,这是和一般视图的根本区别。

    1. 物化视图创建语法如下:

    --创建语法
    CREATE MATERIALIZED VIEW table_name
        [ (column_name [, ...] ) ]
        [ WITH ( storage_parameter [= value] [, ... ] ) ]
        [ TABLESPACE tablespace_name ]
        AS query
        [ WITH [ NO ] DATA ]
    
    --刷新语法
    REFRESH MATERIALIZED VIEW [ CONCURRENTLY ] name
        [ WITH [ NO ] DATA ]


    2. 创建物化视图示例

    --创建测试表
    test=# CREATE TABLE TEST01 (ID INT);
    CREATE TABLE
    test=# INSERT INTO TEST01 SELECT GENERATE_SERIES(1,1000000);
    INSERT 0 1000000
    
    --创建物化视图
    test=# CREATE MATERIALIZED VIEW V_TEST01 AS SELECT * FROM TEST01;
    SELECT 1000000
    test=# 
    test=# INSERT INTO TEST01 VALUES (1000001);
    INSERT 0 1
    test=# 	iming
    Timing is on.
    
    --不加CONCURRENTLY参数的刷新
    test=# REFRESH MATERIALIZED VIEW V_TEST01;
    REFRESH MATERIALIZED VIEW
    Time: 1888.860 ms
    test=# INSERT INTO TEST01 VALUES (1000002);
    INSERT 0 1
    test=# CREATE UNIQUE INDEX INX_ID ON V_TEST01(ID);
    CREATE INDEX
    
    --加CONCURRENTLY参数的刷新
    test=# refresh materialized view concurrently v_test01;
    REFRESH MATERIALIZED VIEW
    Time: 100476.707 ms
    
    可见,加了CONCRRENTLY参数后,刷新时间明显增加。但加了CONCRRENTLY参数的更新不会阻塞查询操作。

    The End!

    2017-08-21

  • 相关阅读:
    腾讯与唯品会笔试面试经历
    JavaCodeTra 猴子选猴王 约瑟夫循环
    HBase开发错误记录(一):java.net.UnknownHostException: unknown host: master
    fedora
    Qt5.1 静态编译
    Linux/Ubuntu下 静态编译Qt程序
    地铁车型
    交流屏和直流屏的区别
    不间断电源(UPS)
    一级负荷供电
  • 原文地址:https://www.cnblogs.com/NextAction/p/7407030.html
Copyright © 2011-2022 走看看