小编Bor*_*oro的帖子

PostgreSQL 在写入密集型数据库上的性能随着时间的推移而下降

我观察到一个奇怪的情况,随着时间的推移,查询(下面解释的查询组合)的性能会下降,这意味着在测试开始时(几分钟)查询的时间是 2 毫秒,然后第二天它变成了 15 毫秒然后是 30 毫秒后的一天。

通过查询,我在这里指的是以下任一者的组合:

  • 在表 2 中插入一行,从表 2 中选择一行,在表 3 中选择一行,更新表 3 中的一行,提交
  • 在表 1 中插入一行,在表 3 中选择一行,在表 3 中更新一行,提交

我想知道可能是什么原因,或者我应该考虑设置配置文件中的哪些设置以及如何设置?我在设置了数据库但未添加主键的 Ubuntu 机器上观察到了这个问题。另一方面,在我开发的 Win 上没有观察到(它在 7 天内平均每个查询 3ms 持续运行)。

我注意到在新数据库(在 Ubuntu 上)中,任何表上都没有主键,这与我开发的数据库相反。缺少主键是否会对此类查询产生负面影响?

我想我会同时问这个问题,因为我正在将我的整个数据库从我的开发机器移到测试机器上。

开发时我使用 PostgreSQL 8.4(CPU:Intel i7 740QM,RAM:6GB),测试时使用 PostgreSQL 9.1(CPU:Intel i3-2100,RAM:3.8GB)。


更新: autovacuum相关参数:

#autovacuum = on        
#log_autovacuum_min_duration = -1   
#autovacuum_max_workers = 3     
#autovacuum_naptime = 1min      
#autovacuum_vacuum_threshold = 50   
#autovacuum_analyze_threshold = 50  
#autovacuum_vacuum_scale_factor = 0.2   
#autovacuum_analyze_scale_factor = 0.1  
#autovacuum_freeze_max_age = 200000000  
#autovacuum_vacuum_cost_delay = 20ms …
Run Code Online (Sandbox Code Playgroud)

postgresql performance database-tuning postgresql-9.1

5
推荐指数
2
解决办法
2967
查看次数