我最近做了一些工作,涉及将一组查询包含在交易中。我正在研究可重复的读取和可序列化/快照隔离。 postgres在延迟可读取的查询
(可序列化快照隔离(SSI)和谓词锁定)上做了一些工作。关于此主题的较早的堆栈溢出问题是Does PostgreSQL运行一些仅阅读交易的性能优化。我试图解决的问题正在弄清两者的相对影响。以前的堆栈溢出问题对优化进行了讨论,但是如何弄清楚哪种方法更好。指标很好,但是很难在足够的负载下测量以证明锁定的影响。
有一些类似于锁定计划的查询计划吗? 如果不是,我应该看什么?
隔离水平对性能的直接影响少于默认的隔离水平。唯一的考虑是,长期读取的
select
REPEATABLE READ
READ COMMITTED
REPEATABLE READ
您可以获得序列化错误,这需要您重复交易。必须经常重复交易也会影响性能。