什么是良好的自动真空设置(建议)表,如:
我的删除是按月和批量进行的。与密钥相关的所有内容都会作为备份被删除或移动。
目前,对于高更新表,我的填充系数设置为10-20。
使用TDS db.t3.large,但在低流量时切换到db.t3.microt。
另外,设置填充因子真的很低慢速选择吗?
发布于 2020-10-21 06:50:14
这个问题太宽泛了,但是这里有一些关于配置自动真空的提示:
VACUUM或使用PostgreSQL v13。fillfactor (取决于行大小)是一件好事。10或20只是对空间的疯狂浪费。当然,低fillfactor会对查询性能产生负面影响;这就是您为更有效的数据修改所付出的代价:
fillfactor较低,则必须读取更多的块,因为行将分布在更多的块上。发布于 2020-10-23 06:13:32
在因特网上有一个讨论PostgreSQL中AUTOVACUUM的文档,标题是:理解中用于PostgreSQL环境的自动真空
特别是..。
自动真空是一个自动执行真空和分析(收集统计数据)命令的守护进程。自动检查数据库中臃肿的表,并回收空间以供重用。
基本上,我建议运行缺省值,因为AUTOVACUUM将负责清理表和更新统计信息。
但是,您必须进行监视,以查看您的PostgreSQL RDS实例在保持内务方面是否做得很好。您可以使用我提到的文章中的脚本:
SELECT
relname AS TableName
,n_live_tup AS LiveTuples
,n_dead_tup AS DeadTuples
,last_autovacuum AS Autovacuum
,last_autoanalyze AS Autoanalyze
FROM pg_stat_user_tables;这会产生这样的东西:
tablename | livetuples | deadtuples | autovacuum | autoanalyze
--------------------------+------------+------------+-------------------------------+-------------------------------
cfgdateval | 1666 | 0 | 2020-02-26 12:32:13.851917+00 | 2020-02-26 12:32:13.87854+00
atcontval | 2940 | 0 | 2018-06-07 09:53:30.664645+00 | 2019-11-28 15:10:15.256083+00
cfgintval | 206 | 0 | 2020-02-26 12:32:13.815353+00 | 2020-02-26 12:32:13.815787+00
cfgaggval | 26 | 0 | | 2017-07-26 18:56:23.161035+00
cfgobjval | 3366 | 0 | 2020-02-26 12:32:13.933712+00 | 2020-02-26 12:32:13.959892+00
atintval | 169080 | 0 | | 2018-06-07 09:53:33.821121+00
atobjval | 259728 | 0 | | 2018-06-07 09:53:32.557788+00
cfgstrval | 1616 | 0 | 2020-02-26 12:32:13.752583+00 | 2020-02-26 12:32:13.803132+00
ataggval | 182790 | 0 | | 2018-06-07 09:53:30.566021+00
coolinking | 59375 | 0 | 2017-05-05 08:47:09.865774+00 | 2017-05-05 09:36:07.292082+00
cooobject | 31791 | 13 | | 2017-05-05 09:01:06.672438+00如果表中包含大量死元组,且未运行AUTOVACUUM,则可能需要考虑调优自动真空设置:
select category, name,setting,unit,source,min_val,max_val from pg_settings where category = 'autovacuum' ;输出:
category | name | setting | unit | source | min_val | max_val | boot_val
------------+-------------------------------------+-----------+------+--------------------+---------+------------+-----------
Autovacuum | autovacuum | on | | default | | | on
Autovacuum | autovacuum_analyze_scale_factor | 0.05 | | configuration file | 0 | 100 | 0.1
Autovacuum | autovacuum_analyze_threshold | 50 | | default | 0 | 2147483647 | 50
Autovacuum | autovacuum_freeze_max_age | 200000000 | | default | 100000 | 2000000000 | 200000000
Autovacuum | autovacuum_max_workers | 3 | | default | 1 | 262143 | 3
Autovacuum | autovacuum_multixact_freeze_max_age | 400000000 | | default | 10000 | 2000000000 | 400000000
Autovacuum | autovacuum_naptime | 30 | s | configuration file | 1 | 2147483 | 60
Autovacuum | autovacuum_vacuum_cost_delay | 20 | ms | default | -1 | 100 | 20
Autovacuum | autovacuum_vacuum_cost_limit | -1 | | default | -1 | 10000 | -1
Autovacuum | autovacuum_vacuum_scale_factor | 0.1 | | configuration file | 0 | 100 | 0.2
Autovacuum | autovacuum_vacuum_threshold | 50 | | default | 0 | 2147483647 | 50有关何时以及是否应该修改AUTOVACUUM设置的详细信息,请参阅应用于PostgreSQL的亚马逊中自动真空调谐的实例研究。
通常情况下,PostgreSQL做的很好,与内务管理。
https://dba.stackexchange.com/questions/278407
复制相似问题