为优化目的,我正在使用一个物化视图,并设置了一个定时任务来周期性地刷新它,每个周期 t 在我的情况下是每三个小时一次。
- 最佳的刷新物化视图的方法是什么?
- 如果使用定时任务来刷新物化视图,会有哪些问题?
我发现了一个Postgres插件可以用来调度任务 链接
为优化目的,我正在使用一个物化视图,并设置了一个定时任务来周期性地刷新它,每个周期 t 在我的情况下是每三个小时一次。
我发现了一个Postgres插件可以用来调度任务 链接
最好的方式是定期执行一个脚本来完成任务:
该脚本为:
#!/bin/sh
psql -U user_name -d database_instance_name -c 'refresh materialized view view_name'
然后在crontab中添加一个条目,类似于:
@hourly /full_path/script_name.sh
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');
nodename(127.0.0.1)可能需要在pg_hba.conf中进行信任认证。