首页 > 其他分享 >postgres物化视图自动触发

postgres物化视图自动触发

时间:2023-08-11 20:31:40浏览次数:50  
标签:concurrently postgres 视图 物化 sshpass 刷新 view

环境

centos7.9,postgresql-14 由于上篇的物化视图是手动刷新数据,sh本着程序员都是懒人的原则,不做成自动刷新是对不起自己的职业

步骤

  1. 建物化视图
CREATE MATERIALIZED VIEW view_xxx AS
    ( SELECT  *
   FROM table
    )
    WITH  DATA;

WITH DATA 指刷新时可查询视图 WITH NO DATA 指刷新时不可查询视图

  1. 手动刷新命令
REFRESH MATERIALIZED VIEW concurrently  view_xxx;

concurrently不锁表刷新数据 如果执行时报 HINT: 在物化视图的一个或多个列上创建不带WHERE子句的唯一索引. 建一个唯一索引

create unique index idx_id on view_xxxx(id);
  1. cron触发
提前装好sshpass
yum install sshpass -y
cron -e
sshpass -p "password"  psql -U postgres -d db_name -c 'REFRESH MATERIALIZED VIEW concurrently  view_xxxxx';

sshpass格式是sshpass -p "your_password" your_command

标签:concurrently,postgres,视图,物化,sshpass,刷新,view
From: https://blog.51cto.com/bomby/7052425

相关文章

  • PostgreSQL从小白到专家 - 第25讲:窗口函数
     PostgreSQL从小白到专家,是从入门逐渐能力提升的一个系列教程,内容包括对PG基础的认知、包括安装使用、包括角色权限、包括维护管理、、等内容,希望对热爱PG、学习PG的同学们有帮助,欢迎持续关注CUUGPG技术大讲堂。第25讲:窗口函数内容1:窗口函数如何定义内容2:专用窗口函......
  • java.sql.SQLFeatureNotSupportedException: 这个 org.postgresql.jdbc.PgResultSet.g
    具体报错为:Errorattemptingtogetcolumn'DISEASENAME'fromresultset.Cause:java.sql.SQLFeatureNotSupportedException:这个org.postgresql.jdbc.PgResultSet.getNString(int)方法尚未被实作。;这个org.postgresql.jdbc.PgResultSet.getNString(int)方法尚未被实......
  • PostgreSQL索引分类
    PostgreSQ支持空间和倒排索引普通索引也就是二级索引索引和数据是分开存储的索引查找数据即需要访问索引,又需要访问表,而表的访问是随机I/O。查询效率o(nlog(n))哈希索引只能用用于==查看查询效率o(1)通用搜索树(GeneralizedSearchTree)GiSTR树(radixtre......
  • PostgreSQL autovacuum 5 怎么监控(autovacuum 扫描表工作的百分比)
    PostgreSQL最大的问题就是vacuum,只要PG的实现多版本和UNDO的方式不改变,那么这个话题就会一直继续,到永远。前面四期讲了autovacuum的触发条件,源代码,怎么调整参数,优化,今天最后一章,的说说怎么进行监控,并且评定你的autovacuum的工作是合格的。下面的内容主要是基于几点来围绕的监......
  • PostgreSQL 查看表膨胀与索引膨胀 SQL
    查看表膨胀TOP5SELECTcurrent_database()ASdb,schemaname,tablename,reltuples::bigintAStups,relpages::bigintASpages,otta,ROUND(CASEWHENotta=0ORsml.relpages=0ORsml.relpages=ottaTHEN0.0ELSEsml.relpages/otta::numericEND,1)AStbloat,CASE......
  • pg_table_size,pg_relation_size和pg_total_relation_size有什么区别? (PostgreSQL)
    # SELECT pg_relation_size(20306, 'main') AS main, pg_relation_size(20306, 'fsm') AS fsm, pg_relation_size(20306, 'vm') AS vm, pg_relation_size(20306, 'init') AS init, pg_table_size(20306), pg_indexes_size(20306)......
  • 为什么要建物化视图日志
    本文转载自:https://so66.cn/66787.html 建立物化视图日志:提高数据库性能的必要手段当今,数据已成为企业发展的重要资产,而数据库则是数据管理的核心。与此同时,随着业务量越来越大,数据库性能问题也变得越来越突出。在这种情况下,物化视图日志成为了对数据库优化的一种必要手段。......
  • Mac 安装 postgres
    安装arch-arm64brewinstallpostgresql初始化数据库initdb--locale=C-EUTF-8/opt/homebrew/var/postgres启动服务brewservicesstartpostgresql``###客户端登录psqlpostgres###创建用户CREATEROLEpostgresWITHLOGINPASSWORD'postgres';ALTERR......
  • postgresql权限
    ostgresql权限详解角色前言PostgreSQL使用角色的概念管理数据库访问权限。根据角色的设置方式,可以将角色视为数据库用户或数据库用户组。角色可以拥有数据库对象(例如,表和函数),并可以将对这些对象的权限分配给其他角色,以控制谁有权访问哪些对象。此外,还可以将角色的成员资格授予......
  • 全方位对比 Postgres 和 MySQL(2023 版)
    根据2023年的StackOverflow调研(https://survey.stackoverflow.co/2023/),Postgres已经取代MySQL成为最受敬仰和渴望(themostadmired,desired)的数据库。  随着Postgres的发展势头愈发强劲,在Postgres和MySQL之间做选择变得更难了。 如果看安装数量......