我知道视图是使用规则系统实现的,但我不清楚在针对它们运行事务性 DDL 时这是否有任何优点/缺点。发出CREATE OR REPLACE VIEW ...;
或DROP VIEW ...; CREATE VIEW...;
在事务中是否对表取出类似于 DDLACCESS EXCLUSIVE
的锁?是否必须在 DDL 执行之前完成所有在 DDL 之前发出的查询?在 DDL 之后发出的查询是否会阻塞,直到 DDL 完成?
foobar0100's questions
根据文档:
PL/Python 仅作为“不受信任”的语言提供,这意味着它不提供任何方式来限制用户可以在其中执行的操作,因此被命名为 plpythonu。如果在 Python 中开发了一种安全的执行机制,那么未来可能会出现一个受信任的变体 plpython。
为什么要为 Python 开发安全的执行机制却很难为其他语言(例如 Perl)开发安全执行机制?
当专门为 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,这意味着永远等待查询完成。
我仍然不清楚哪个更好,每个的确切优点和缺点是什么?
在 2015 年的 re:Invent 演讲中,AWS 提到,vacuum 不仅应该在更新或删除之后运行,还应该在插入之后运行。以下是谈话的相关部分:
http://www.youtube.com/watch?v=tZXp19q8RFo&t=16m2s
假设必须对块进行一些清理,即使它们只接收到插入,并且可以在第一次选择块时(减慢读取速度)或在真空期间进行清理。这是真的吗?如果是这样,究竟必须进行哪些清理工作?
数据类型的名称从何而来?哈希存储?