一、MySQL數(shù)據(jù)庫全局隔離級別和默認隔離級別的區(qū)別
1、作用范圍
全局隔離級別是針對整個MySQL數(shù)據(jù)庫服務(wù)器的,它影響所有連接到數(shù)據(jù)庫服務(wù)器的會話和事務(wù)的隔離級別。默認隔離級別是針對每個數(shù)據(jù)庫連接的,它是在創(chuàng)建新連接時使用的默認隔離級別。
2、設(shè)置方式
全局隔離級別通過配置MySQL服務(wù)器的參數(shù)進行設(shè)置。在MySQL的配置文件中,可以使用transaction-isolation
參數(shù)指定全局隔離級別。默認隔離級別是通過tx_isolation
全局參數(shù)設(shè)置的,可以通過修改該參數(shù)來更改默認隔離級別。
3、影響對象
全局隔離級別會影響所有新創(chuàng)建的連接和事務(wù)的隔離級別。默認隔離級別只影響新建立的連接的隔離級別,對于已經(jīng)建立的連接,它們將繼續(xù)使用它們自己的隔離級別。
4、優(yōu)先級關(guān)系
默認隔離級別是全局隔離級別的一部分,即默認隔離級別是全局隔離級別的初始值。如果在創(chuàng)建新連接時未顯式設(shè)置隔離級別,則會使用默認隔離級別。在創(chuàng)建新事務(wù)時,如果未顯式設(shè)置隔離級別,則會使用連接的隔離級別,如果連接的隔離級別未設(shè)置,則使用默認隔離級別。
5、可覆蓋性
全局隔離級別和默認隔離級別都可以被單獨的會話或事務(wù)級別的設(shè)置所覆蓋。在每個事務(wù)或會話中,可以使用SET TRANSACTION ISOLATION LEVEL
語句來設(shè)置特定的隔離級別,以覆蓋全局隔離級別和默認隔離級別。