代码之家  ›  专栏  ›  技术社区  ›  rachid el kedmiri

定期刷新物化视图postgres

  •  13
  • rachid el kedmiri  · 技术社区  · 8 年前

    为了优化,我使用了一个物化视图,为了定期刷新它,我设置了一个cron作业,在我的例子中,它每三个小时运行一次周期t。 我的问题是:

    1. 刷新物化视图的最佳方式是什么?
    2. 如果使用cron作业刷新物化视图,会出现什么问题?

    我遇到了一个安排作业的postgres插件 link

    2 回复  |  直到 8 年前
        1
  •  11
  •   rachid el kedmiri    8 年前

    最好的方法是定期执行执行执行任务的脚本:

    脚本是:

    #!/bin/sh
    psql -U user_name -d database_instance_name -c 'refresh materialized view view_name'
    

    并在crontab中添加一个条目,如:

    @hourly  /full_path/script_name.sh
    
        2
  •  1
  •   Barış Serkan AKIN    5 年前

    而且 pg_cron 扩展可以完成Linux安装的工作。 下面是我使用的一个示例,每5分钟刷新一次;

    INSERT INTO cron.job (schedule, command, nodename, nodeport, database, username)
    VALUES ('*/5 * * * *', 'REFRESH MATERIALIZED VIEW public.mv_anyquery', 
    '127.0.0.1', 5432, 'geodb', 'postgres');
    

    节点名(127.0.0.1)可能是pg_hba中必要的信任验证。形态。