gpt4 book ai didi

postgresql - 如果我将某些表的 autovacuum 比例因子设置为零,会对数据库产生不利影响吗?

转载 作者:行者123 更新时间:2023-11-29 13:13:31 24 4
gpt4 key购买 nike

我们在Centos 操作系统上使用postgres 9.2 版本。我们有大约 1300 多张 table 。我们启用了以下自动真空设置。仍然很少有总是很忙的表(84 个表)没有被清理。这些表中的死元组超过 5000 个。由于表膨胀,观察到很少有区域性能下降。

autovacuum = on                             
log_autovacuum_min_duration = 100
autovacuum_max_workers = 5
autovacuum_naptime = 1min
autovacuum_vacuum_threshold = 40
autovacuum_analyze_threshold = 20
autovacuum_vacuum_scale_factor = 0.1
autovacuum_analyze_scale_factor = 0.05
autovacuum_freeze_max_age = 200000000
autovacuum_vacuum_cost_delay = 30ms
autovacuum_vacuum_cost_limit = 1200

# - Cost-Based Vacuum Delay -

#vacuum_cost_delay = 0ms # 0-100 milliseconds
#vacuum_cost_page_hit = 1 # 0-10000 credits
#vacuum_cost_page_miss = 10 # 0-10000 credits
#vacuum_cost_page_dirty = 20 # 0-10000 credits
vacuum_cost_limit = 200 # 1-10000 credits

为了避免表膨胀和性能下降,我们想为繁忙的表设置“autovacuum_vacuum_scale_factor”(零)和“autovacuum_vacuum_threshold”(200)设置,如下所示。如果我将某些表的 autovacuum 比例因子设置为零,请告诉我是否对数据库有任何不利影响。如果是,效果如何,如何测试。

ALTER TABLE cmdevice SET (autovacuum_vacuum_scale_factor = 0, autovacuum_vacuum_threshold = 200);

请让我知道 autovacuum_vacuum_cost_delay 和 autovacuum_vacuum_cost_limit 设置的作用。

最佳答案

该措施不会有效。虽然它会导致 autovacuum 一直在表上运行,但不会使其更快。

首先尝试将 autovacuum_vacuum_cost_limit 提高到 2000 左右,这决定了 autovacuum 在多少工作后“小睡”。

如果这不起作用,请将指定小睡持续时间的 autovacuum_vacuum_cost_delay 降低到 0。这是您能做的最好的事情。

您可以使用 ALTER TABLE ... SET (...) 仅更改具有高 liveness 的表的设置。

关于postgresql - 如果我将某些表的 autovacuum 比例因子设置为零,会对数据库产生不利影响吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51818949/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com