小编foo*_*100的帖子

在只接收 INSERT 的表上运行 VACUUM 是否值得?

在 2015 年的 re:Invent 演讲中,AWS 提到真空不仅应该在更新或删除之后运行,而且还应该在插入之后运行。这是谈话的相关部分:

http://www.youtube.com/watch?v=tZXp19q8RFo&t=16m2s

据说即使块只收到插入,也必须对块进行一些清理,并且可以在第一次选择块时(减慢读取速度)或在真空期间进行清理。这是真的吗?如果是这样,究竟必须进行哪些清理工作?

postgresql performance vacuum postgresql-performance

19
推荐指数
1
解决办法
2817
查看次数

为什么 PL/Python 不受信任?

根据文档:

PL/Python 仅可用作“不受信任”的语言,这意味着它不提供任何方式来限制用户可以在其中执行的操作,因此被命名为 plpythonu。如果在 Python 中开发了安全执行机制,那么将来可能会出现可信变体 plpython。

为什么为 Python 开发安全执行机制却很难,而为其他语言(如 Perl)开发安全执行机制却没有?

postgresql security python plpython

13
推荐指数
1
解决办法
2555
查看次数

针对 PostgreSQL 中的视图发出 DDL 是否与针对表发出 DDL 取出相同的锁?

我知道视图是使用规则系统实现的,但我不清楚在针对它们运行事务性 DDL 时这是否有任何优点/缺点。发出CREATE OR REPLACE VIEW ...;DROP VIEW ...; CREATE VIEW...;在事务中是否会针对表取出类似于 DDLACCESS EXCLUSIVE锁?所有在 DDL 之前发出的查询都必须在 DDL 执行之前完成吗?查询会在 DDL 阻塞后发出,直到 DDL 完成吗?

postgresql view ddl locking

6
推荐指数
1
解决办法
601
查看次数

对于长时间运行的分析查询的备用工作负载,是打开 hot_standby_feedback 还是将 max_standby_*_delay 设置设置为 -1 更好?

当专门为 BI/Analytics 目的启动热备用服务器时,长时间运行的查询可能很常见,是打开hot_standby_feedback还是将max_standby_*_delay设置设置为 -1更好?

我的理解是,这会hot_standby_feedback阻止主服务器执行类似操作,VACUUM直到可以安全地在备用服务器上执行同样的操作,其中max_standby_*_delay设置允许VACUUM在主服务器上开始,但备用服务器(如有必要)会等待应用任何可能与长时间冲突的真空清理运行查询。

此外,文档状态hot_standby_feedback

如果发现备用查询取消的次数不可接受,则存在补救的可能性。第一个选项是设置参数 hot_standby_feedback,它可以防止 VACUUM 删除最近死的行,因此不会发生清理冲突。如果你这样做,你应该注意这会延迟主节点上死行的清理,这可能会导致不受欢迎的表膨胀。但是,清理情况不会比备用查询直接在主服务器上运行更糟糕,并且您仍然可以从将执行卸载到备用服务器上获得好处。

对于max_standby_*_delay文档状态:

如果备用服务器的任务是作为决策支持查询的附加服务器,那么将最大延迟值设置为许多小时或什至 -1 可能是可以接受的,这意味着永远等待查询完成。

我仍然不清楚哪个更好,每个的确切优点和缺点是什么?

postgresql replication performance business-intelligence postgresql-performance

5
推荐指数
1
解决办法
2674
查看次数

4
推荐指数
1
解决办法
153
查看次数