Spring事務中的readonly

來源:https://www.cnblogs.com/straybirds/p/9147892.htmlhtml

Spring的事務常常會有這樣的配置:數據庫

<tx:method name="search*" read-only="true" /> 

或者這樣的註記:優化

@Transactional(readOnly = true)

緣由:spa

「只讀事務」並非一個強制選項,它只是一個「暗示」,提示數據庫驅動程序和數據庫系統,這個事務並不包含更改數據的操做,
那麼JDBC驅動程序和數據庫就有可能根據這種狀況對該事務進行一些特定的優化,
比方說不安排相應的數據庫鎖,以減輕事務對數據庫的壓力,畢竟事務也是要消耗數據庫的資源的。
1 readonly並非全部數據庫都支持的,不一樣的數據庫下會有不一樣的結果。
2 設置了readonly後,connection都會被賦予readonly,效果取決於數據庫的實現。
3 在ORM中,設置了readonly會賦予一些額外的優化,例如在Hibernate中,會被禁止flush等。
相關文章
相關標籤/搜索