這篇文章主要講解了“MySQL事務(wù)知識點分析”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“mysql事務(wù)知識點分析”吧!
專注于為中小企業(yè)提供網(wǎng)站設(shè)計制作、成都網(wǎng)站建設(shè)服務(wù),電腦端+手機(jī)端+微信端的三站合一,更高效的管理,為中小企業(yè)石河子免費做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動了近1000家企業(yè)的穩(wěn)健成長,幫助中小企業(yè)通過網(wǎng)站建設(shè)實現(xiàn)規(guī)模擴(kuò)充和轉(zhuǎn)變。
InnoDB存儲引擎支持事務(wù),默認(rèn)自提交模式,如要開啟事務(wù),必須以begin命令開始,以commit或者rollback結(jié)束。
事務(wù)特性
l 原子性(Atomiity):要么都做,要么都不做。
l 一致性(Consistency):操作前后滿足業(yè)務(wù)規(guī)則約束。
l 隔離性(Isolation):多個并發(fā)事務(wù)互不影響。
l 持久性(Durabili):事務(wù)結(jié)束,對數(shù)據(jù)的修改是持久的。
事務(wù)開啟語句由begin或start transaction(read write|read only)命令開始,結(jié)束用commit或rollback顯示結(jié)束。
隱式提交:DDL操作或再次輸入begin和start transaction命令。
隱式回滾:退出會話、連接超時、關(guān)機(jī)等。
關(guān)閉自提交特性(set autocommit=0)
開啟自提交特性(set autocommit=1)
關(guān)閉自動提交好處:不用一個事務(wù)一次提交,多個事務(wù)一起體驕傲,提高處理能力。
關(guān)閉自提交壞處:如一事務(wù)長期不提交,導(dǎo)致行鎖等待,影響數(shù)據(jù)庫TPS值。
不建議關(guān)閉自提交模式。
truncate 是DDL,事務(wù)中不能回滾,會清空表的自增屬性,回到原始開始值。
delete是DML
共同點:清空表內(nèi)數(shù)據(jù),
SQL標(biāo)準(zhǔn)的4鐘隔離級別
n 讀未提交(read uncommitted),RU,一個事務(wù)可以讀取到其他事務(wù)未提交的數(shù)據(jù)變化,叫臟讀,生產(chǎn)環(huán)境不建議使用。
n 讀已提交(read committed),RC,一個事務(wù)可以讀其他事務(wù)已提交的數(shù)據(jù)變化,叫不可重復(fù)讀,是Oracle默認(rèn)事務(wù)隔離級別。
n 可重復(fù)讀(repetable read),RR,一個事務(wù)中,直到事務(wù)結(jié)束前,都可以反復(fù)讀取到事務(wù)剛開始時看到的數(shù)據(jù),并一直不發(fā)生變化,避免了臟讀、不可重復(fù)讀、幻讀現(xiàn)象的發(fā)生。mysql默認(rèn)事務(wù)隔離級別。
n 串行(serializable),在每個讀的數(shù)據(jù)行上都加表級共享鎖,在每次寫數(shù)據(jù)時都要加表級排他鎖。造成InnoDB的并發(fā)能力下降、大量超時和鎖競爭的發(fā)生,不建議用到生產(chǎn)環(huán)境。
查看當(dāng)前庫隔離級別
[mysql]>show variables like '%tx_isolation%';
+---------------+-----------------+
| Variable_name | Value |
+---------------+-----------------+
| tx_isolation | REPEATABLE-READ |
+---------------+-----------------+
修改全局或當(dāng)前會話的事務(wù)隔離級別
set global|session transaction isolation level
RU,一個事務(wù)讀取別的事務(wù)未提交的數(shù)據(jù)。
不可重復(fù)讀:一個事務(wù)讀取到其他事務(wù)針對舊數(shù)據(jù)的修改記錄,常見(update,delte)。
幻讀:一個事務(wù)讀取到其他事務(wù)新增數(shù)據(jù),常見(insert),允許出現(xiàn)在已提交事務(wù)的隔離級別中。
可重復(fù)讀是mysql默認(rèn)事務(wù)隔離級別,消除臟讀、不可重復(fù)讀、幻讀等現(xiàn)象,很好保證事務(wù)的一致性。
如在本事務(wù)想讀取別的新增數(shù)據(jù),可如下:
查詢:select * from t for update;
本事務(wù)提交一次:commit;
感謝各位的閱讀,以上就是“mysql事務(wù)知識點分析”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對mysql事務(wù)知識點分析這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關(guān)知識點的文章,歡迎關(guān)注!
當(dāng)前題目:mysql事務(wù)知識點分析
分享路徑:http://bm7419.com/article40/jcspho.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站內(nèi)鏈、關(guān)鍵詞優(yōu)化、外貿(mào)網(wǎng)站建設(shè)、網(wǎng)站改版、響應(yīng)式網(wǎng)站、App開發(fā)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)