• 【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

  • 相关阅读:
    实现翻页效果
    使用AHKActionSheet
    [翻译] GSProgressView
    [翻译] NSRegexTester
    下载时获取文件大小
    高级mask应用
    使用UILabel实现滚动字幕移动效果
    动画绘制水波纹
    能产生粒子效果的CAEmitterLayer
    使用UITableView实现图片视差效果
  • 原文地址:https://www.cnblogs.com/NextAction/p/7407030.html
Copyright © 2020-2023  润新知