日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

Mysql 事务学习笔记

發(fā)布時間:2025/7/14 57 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Mysql 事务学习笔记 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

1讀寫鎖

1.1為什么為出現(xiàn)讀寫鎖?

當一個人在update這個數(shù)據(jù),另一個人在select查詢這個數(shù)據(jù)的時候.會產(chǎn)生一種數(shù)據(jù)混亂,應運產(chǎn)生的鎖.

鎖的概念:

  • 讀鎖是共享的,并且不會阻塞. 寫鎖則是排他的
  • 同一個時間內(nèi)只能有一個用戶寫入.

1.2 鎖粒度.

  • 太多的鎖又會影響效率,為了保證效率,會給不同級別的失誤.安排不同的鎖.最好只是精確的鎖定. 因為鎖本身不僅影響效率,也消耗資源.通常情況下,鎖越少效率越高.

鎖策略,就是在鎖的開銷和數(shù)據(jù)的安全性做出平衡.大部分商業(yè)數(shù)據(jù)庫并沒有提供特別多選擇,只是在表上加上行級鎖.

1.3 Mysql 的鎖策略

  • 表鎖,最基本也是開銷最小策略.搜定這張表,在用戶對表修改時候,需要先獲得鎖,并且阻塞其他用戶的讀寫操作. 只有沒有寫鎖的時候其他用戶才能獲得讀鎖,并且讀鎖之前不會阻塞
  • 行級鎖可以最大成都的支持并發(fā)處理

2 事務

事務是一組原子性的sql查詢,如果能執(zhí)行查詢?nèi)空Z句,那么查詢?nèi)?如果又一條語句不成功,那么所有的都不執(zhí)行.事務都要經(jīng)過ACID 測試不然沒有意義

2.1 ACID事務的四項檢測

  • 原子性(atomicity)
    • 一個事務被視為一個不可分割的最小工作單元.就像原子不可分割一樣.
  • 一致性(consistency)
    • 數(shù)據(jù)庫總是從一個一致性的狀態(tài)轉換為另一個一致性的狀態(tài).要么全部成功,要么全部失敗,結果應該是一致的,不應該有的成功,有的失敗.
  • 隔離性(Isolation)
    • 一個事務在做修改成功之前,對其他的事務是不課件的. 當你對一個賬戶進行取款操作,那么另一個程序是無法看見你的操作結果.直到你成功之前
      • 隔離級別Isolation Level
        • Read uncommited
          • 在READ UNCOMMITED級別. 事務中的修改,即使沒有提交,對其他事務可見.
        • READ COMMITED
          • 大多數(shù)數(shù)據(jù)庫的默認級別都是Read committed.Mysql不是. 一個事務開始的時候,只能看見自己已經(jīng)提交的修改.
            在不提交前,對其他事務完全不可見.
        • REPEATABLE READ
          • REPEATABLE READ 解決了臟讀的問題,該級別保證同一個事務多次讀取結果是一致的. 但同事導致幻讀的問題.當讀取某個范圍的數(shù)據(jù)的時候,里一個事務又在該范圍內(nèi)插入新的數(shù)據(jù)
            當之前事務在讀取的時候會產(chǎn)生幻行.
        • SERIALIZABLE
          • 最高Isolation Level級別,通過強制事務串的執(zhí)行.避免了之前說的幻讀,SERIALIZABLE 會在每一行數(shù)據(jù)加鎖.所以可能導致大量超時和鎖爭搶的問題.
            非常少用.只有當需要保持數(shù)據(jù)一致性而接受沒有并發(fā)的情況下才考慮.
  • 持久性(durability)
    • 一旦事務提交,修改就會永久保存在數(shù)據(jù)庫中.及時系統(tǒng)崩潰也不會丟失.這個策略主要保證數(shù)據(jù)不會丟失.而且上持久性也分不同的級別.有的持久程度高,又的持久程度低.

1-1 各種隔離級別的區(qū)別和特點

Isolation Level(隔離)臟讀可能性不可重讀可能性幻讀可能性加鎖讀
Read uncommittedYESYESYESNO
READ COMMITTEDNOYESYESNO
PEPETABLE READNONOYESNO
SERIALIZABLENONONOYES

轉載于:https://www.cnblogs.com/maxaimee/p/6534272.html

總結

以上是生活随笔為你收集整理的Mysql 事务学习笔记的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。