Ruby on rails PostgreSQL+;Rails并发澄清

Ruby on rails PostgreSQL+;Rails并发澄清,ruby-on-rails,postgresql,concurrentmodification,Ruby On Rails,Postgresql,Concurrentmodification,我正在构建一个后台作业,用于更新web应用程序的用户统计数据。这个作业目前需要55-60秒,我担心如果用户在作业运行的同时尝试加载他的统计页面会发生什么 从我读到的关于PostgreSQL和并发性的内容来看,如果两个客户端试图访问同一行(一个更新,一个读取),而我没有显式地启动任何事务,那么第一个客户端只需等待第二个客户端完成 因此,如果我理解正确的话,我唯一可能受到的性能影响就是用户在更新行的同时尝试加载其统计页面的可能性极小。除非我明确地配置Postgres,否则在55-60秒的作业期间,整

我正在构建一个后台作业,用于更新web应用程序的用户统计数据。这个作业目前需要55-60秒,我担心如果用户在作业运行的同时尝试加载他的统计页面会发生什么

从我读到的关于PostgreSQL和并发性的内容来看,如果两个客户端试图访问同一行(一个更新,一个读取),而我没有显式地启动任何事务,那么第一个客户端只需等待第二个客户端完成

因此,如果我理解正确的话,我唯一可能受到的性能影响就是用户在更新行的同时尝试加载其统计页面的可能性极小。除非我明确地配置Postgres,否则在55-60秒的作业期间,整个统计表不会被锁定,对吗

这是正确的解释吗?我还缺少其他因素吗

(我提到了Rails部分,以防它与上述场景有任何关系)


(另外:PostgreSQL版本是9.0.4)

它取决于事务隔离级别。如果我有你的情况-你说的是肮脏的阅读避免延误。是的,如果使用默认隔离级别,则不可能进行脏读。只有当读卡器尝试获取正在更新的同一行时,读卡器才会等待写卡器

Read Committed是PostgreSQL中的默认隔离级别。当事务在此隔离级别上运行时,SELECT查询只看到在查询开始之前提交的数据