-
圖靈機:一個參數(shù),經(jīng)過一個算法,返回一個數(shù)據(jù)的過程
查看全部 -
2PL,2階段鎖。2 phrase lock
2PC,2階段提交事務(wù),2 phrase commit
查看全部 -
MVCC:樂觀鎖
讓版本低的并發(fā)更新回滾,優(yōu)勢是并發(fā)低時,性能好。代價是,并發(fā)高時,失敗率高,需要不斷重試
查看全部 -
死鎖擴(kuò)展:U鎖
MVCC拾遺
Two Phase Lock (2PL)
查看全部 -
深度單擊事務(wù)-小結(jié):
ACID,原子性,一致性,
????????????隔離性:讀已提交
????????????????????????? 讀未提交
????????????????????????? 可重復(fù)讀
????????????????????????? ?序列化讀
????????????????????????? ?擴(kuò)展(快照隔離級別:MVCC / SNAPSHOT ISOLATION)用新方式實現(xiàn)傳統(tǒng)意義上讀未提交場景,同事保證可序列化的隔離級別。當(dāng)寫大于讀時,會增加系統(tǒng)成本,MVCC適合讀比寫多的情況
????????持久性:1直接寫入內(nèi)存:優(yōu)點是IOPS高,缺點是可能丟失數(shù)據(jù)
????????????????????? 2 Group Commit ,將多次數(shù)據(jù)拼成一個包,優(yōu)點是保證系統(tǒng)持久性和吞吐量,缺點是請求延遲提升。
查看全部 -
事務(wù)調(diào)優(yōu)原則:
減少鎖的覆蓋范圍:
????????Mysiam 表鎖 -> Innodb 行鎖
????????原位鎖 -> MVCC多版本
增加鎖上可并行的線程數(shù):
????????讀鎖寫鎖分離,允許并行讀取數(shù)據(jù)
????????多線程并行讀取
????????允許多人讀取
選擇正確鎖類型
????????悲觀鎖 使線程到blocking 狀態(tài),CPU不會調(diào)度他,當(dāng)通知給它信息為ok狀態(tài)時,切換回等待狀態(tài),CPU可以對它進(jìn)行調(diào)度。最大的特點就是,換入換出增加系統(tǒng)開銷。比較適合,并發(fā)爭搶比較嚴(yán)重的場景
????????樂觀鎖 ,適合并發(fā)爭搶不太嚴(yán)重的場景
查看全部 -
MVCC:可保證讀寫并行,寫讀并行
快照(snapshot isolation):針對度多寫少場景優(yōu)化;并行度能達(dá)到或超過讀未提交,而隔離級別很高
讀未提交:寫加鎖,但是讀的話不加鎖,會導(dǎo)致讀到正在寫的數(shù)據(jù);
快照:保證讀到一致性的同時,實現(xiàn)讀未提交
事務(wù):將多種不同的命令,組裝到一起的過程
持久性:事務(wù)完成以后,該事務(wù)對數(shù)據(jù)庫所做的更改,便持久的保存在數(shù)據(jù)庫之中:
????????????1 提交請求到內(nèi)存后返回
????????????2 將內(nèi)存的數(shù)據(jù)打包到磁盤
隔離性(擴(kuò)展:mvcc ,snapshot isolation)
持久性(擴(kuò)展:持久性保證策略)
查看全部 -
事務(wù):其本質(zhì)是 鎖和并發(fā)查看全部
-
讀未提交查看全部
-
死鎖產(chǎn)生原因:兩個線程;分別擁有了對方想要獲得資源,并且兩個線程想要去拿對方鎖定的資源;
解決方法:盡可能不死鎖;碰撞檢測(主流);等鎖超時
查看全部 -
一個事務(wù)單元
查看全部 -
原子性
? ?要么全部成功 要么全部失敗
一致性?
? 序列化讀寫(使用鎖)
隔離性?
? ?讀寫鎖 :-可重復(fù)讀(repeatable ?read) 讀讀可以并行 讀寫不可以
? ? ? ? ? ? ? ? ? ? -讀已提交 (read committed) ?讀讀并行 讀寫并行 (寫讀不行)
? ? ? ? ? ? ? ? ? ? ? ? ? ? 會出現(xiàn)不可重復(fù)讀的問題,第一次讀和第二次讀的數(shù)據(jù)的版本號會不一致
? ? ? ? ? ? ? ? ? ? -讀未提交 (read uncommitted) 寫加鎖 讀不加鎖 , 讀讀 讀寫 寫讀并行 寫寫串行
? ? ? ? ? ? ? ? ? ? ? ? ? ? 會讀到寫中間數(shù)據(jù)
查看全部 -
4種隔離性查看全部
舉報