12
根據reference documentation READ ONLY事務標誌除了允許DEFERRABLE事務之外是有用的嗎?PostgreSQL對只讀事務運行一些性能優化
SET SESSION CHARACTERISTICS AS TRANSACTION READ ONLY;
可延遲交易屬性沒有任何影響,除非 交易也是SERIALIZABLE和只讀。當這些屬性的所有三個 被選擇用於交易時,交易可以在第一次獲取其快照時阻塞,之後它能夠運行 而沒有SERIALIZABLE交易的正常開銷並且沒有任何促成或正在進行的風險取消序列號 失敗。此模式非常適合長時間運行的報告或備份。
數據庫引擎是否爲只讀事務運行其他優化?
我的理解是讀寫事務會帶來一些開銷,但是在實際寫入內容之前您不會承擔這種開銷。換句話說,就性能而言,「READ ONLY」事務應該與僅包含讀取的「READ WRITE」事務相同。這源於Postgres處理XID分配的方式(有關此處的一些信息(https://wiki.postgresql.org/wiki/Hint_Bits))。 –
@NickBarnes也符合我的理解。 「只讀」實際上更加安全。 –
謝謝。因此,可延期交易是唯一實質性的優化。 –