共計 1562 個字符,預(yù)計需要花費 4 分鐘才能閱讀完成。
這篇文章給大家分享的是有關(guān)如何修改 mysql 的隔離級別的內(nèi)容。丸趣 TV 小編覺得挺實用的,因此分享給大家做個參考,一起跟隨丸趣 TV 小編過來看看吧。
修改 mysql 隔離級別的方法:1、找到“skip-external-locking”;2、添加“transaction-isolation = READ-COMMITTED”內(nèi)容;3、重啟 mysql 服務(wù)。
本文操作環(huán)境:Windows7 系統(tǒng)、mysql5.5 版、Dell G3 電腦。
怎么修改 mysql 的隔離級別?
MySQL 的事務(wù)的隔離級別以及修改方式
修改 Mysql 的事務(wù)隔離級別:
sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf
在位置:
lc-messages-dir = /usr/share/mysql
skip-external-locking
后面添加(讀取提交內(nèi)容):
transaction-isolation = READ-COMMITTED
保存后重啟 mysql 服務(wù):
sudo service mysql restart
SQL 的 4 種隔離級別
Read Uncommitted(讀取未提交內(nèi)容)
在該隔離級別,所有事務(wù)都可以看到其他未提交事務(wù)的執(zhí)行結(jié)果。本隔離級別很少用于實際應(yīng)用,因為它的性能也不比其他級別好多少。讀取未提交的數(shù)據(jù),也被稱之為臟讀(Dirty Read)。
Read Committed(讀取提交內(nèi)容)
這是大多數(shù)數(shù)據(jù)庫系統(tǒng)的默認隔離級別(但不是 MySQL 默認的)。它滿足了隔離的簡單定義:一個事務(wù)只能看見已經(jīng)提交事務(wù)所做的改變。這種隔離級別 也支持所謂的不可重復(fù)讀(Nonrepeatable Read),因為同一事務(wù)的其他實例在該實例處理其間可能會有新的 commit,所以同一 select 可能返回不同結(jié)果。
Repeatable Read(可重讀)(Mysql 默認為此項:REPEATABLE-READ)
這是 MySQL 的默認事務(wù)隔離級別,它確保同一事務(wù)的多個實例在并發(fā)讀取數(shù)據(jù)時,會看到同樣的數(shù)據(jù)行。不過理論上,這會導(dǎo)致另一個棘手的問題:幻讀(Phantom Read)。簡單的說,幻讀指當用戶讀取某一范圍的數(shù)據(jù)行時,另一個事務(wù)又在該范圍內(nèi)插入了新行,當用戶再讀取該范圍的數(shù)據(jù)行時,會發(fā)現(xiàn)有新的“幻影”行。InnoDB 和 Falcon 存儲引擎通過多版本并發(fā)控制(MVCC,Multiversion Concurrency Control)機制解決了該問題。
Serializable(可串行化)
這是最高的隔離級別,它通過強制事務(wù)排序,使之不可能相互沖突,從而解決幻讀問題。簡言之,它是在每個讀的數(shù)據(jù)行上加上共享鎖。在這個級別,可能導(dǎo)致大量的超時現(xiàn)象和鎖競爭。
讀取的是同一個數(shù)據(jù)時, 容易發(fā)生的問題有:
臟讀(Drity Read):某個事務(wù)已更新一份數(shù)據(jù),另一個事務(wù)在此時讀取了同一份數(shù)據(jù),由于某些原因,前一個 RollBack 了操作,則后一個事務(wù)所讀取的數(shù)據(jù)就會是不正確的。
不可重復(fù)讀(Non-repeatable read): 在一個事務(wù)的兩次查詢之中數(shù)據(jù)不一致,這可能是兩次查詢過程中間插入了一個事務(wù)更新的原有的數(shù)據(jù)。
幻讀 (Phantom Read): 在一個事務(wù)的兩次查詢中數(shù)據(jù)筆數(shù)不一致,例如有一個事務(wù)查詢了幾列(Row) 數(shù)據(jù),而另一個事務(wù)卻在此時插入了新的幾列數(shù)據(jù),先前的事務(wù)在接下來的查詢中,就會發(fā)現(xiàn)有幾列數(shù)據(jù)是它先前所沒有的。
# !
django2.X 后, 自主更改框架與 mysql 會話的事務(wù)等級為 READ-COMMITTED(讀取提交內(nèi)容), 如要求級別如此, 則不需要更改.
感謝各位的閱讀!關(guān)于“如何修改 mysql 的隔離級別”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,讓大家可以學(xué)到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!