MySQL事務的隔離級別默認設置
什么是MySQL事務隔離級別?
MySQL事務隔離級別是用來描述在一個事務過程中,并發的其他操作對該事務產生的影響程度的級別。在MySQL數據庫中一共有四種隔離級別,分別是Read Uncommitted(讀未提交)、Read Committed(讀提交)、Repeatable Read(可重復讀)和Serializable(串行化)。
MySQL默認的事務隔離級別是什么?
MySQL默認的隔離級別是Repeatable Read(可重復讀)。
為什么MySQL選擇Repeatable Read作為默認隔離級別呢?
Repeatable Read雖然不如Serializable那樣保證事務的完整性,但是它在大多數情況下已經足夠保證數據的完整性,而且在可重復讀下避免了幻讀的問題,因此具有良好的性能表現。同時,Repeatable Read也支持類似于Serializable一樣的鎖機制來保證事務的正確性,所以MySQL選擇Repeatable Read作為默認隔離級別是一個相對穩妥的選擇。
如何更改MySQL的隔離級別?
如果需要更改MySQL的隔離級別,可以通過以下方式進行:
1.直接在mysql命令行下執行SET TRANSACTION ISOLATION LEVEL {級別}命令;
2.通過JDBC連接MySQL時,通過setTransactionIsolation(int level)方法設置隔離級別;
3.在MySQL配置文件中配置默認隔離級別,即將transaction_isolation={級別}添加到my.conf或my.ini配置文件中。