【同步併發】入門小結

髒數據:可以理解爲臨時值。當事務A更新了數據,但是還未提交時事務B進行了讀取。當事務A出問題進行回滾回原值,那麼事務B已經讀取的就是一個髒數據。

不可重複讀:理解爲在同一事務內的兩次相同查詢返回不同的值。導致原因是這兩次查詢中間被另一個事務修改了數據。重點修改。

幻讀:當事務不是獨立執行時發生的現象。當事務A對錶中所有數據進行了修改或讀取。同時事務B在表中插入數據。那麼會在事務A後感覺還有數據沒有被修改或讀取到的幻覺。重點新增或刪除。

解決:設置隔離級別。


數據層面的鎖:悲觀鎖+樂觀鎖

悲觀鎖:sql+for update。鎖定了所有符合條件的語句。

樂觀鎖:添加version標誌,操作時比較version,成功後更新version。


數據庫拆分:水平拆分+垂直拆分

水平拆分:表結構還是相同的,但是數量減少了,比如500w的表平均拆分10張的話,每張表就只有50w。拆分方式:順序,hash取模,建立映射關係。

垂直拆分:將表結構拆分。如將一個10個字段的表拆成兩張5個字段的表。


讀寫分離


緩存


負載均衡

發佈了19 篇原創文章 · 獲贊 3 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章