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

  • 相关阅读:
    [BZOJ 4710] 分特产
    洛谷 P4827 [国家集训队] Crash 的文明世界
    Test 7.12 T2
    [洛谷 P1377] TJOI2011 树的序
    [洛谷 P1013] NOIP1998 提高组 进制位
    ajax2
    Ajax
    javascript下兼容都有哪些
    获取类名 封装 getStyle
    作用域
  • 原文地址:https://www.cnblogs.com/NextAction/p/7407030.html
Copyright © 2011-2022 走看看