文章目錄
- 項目地址
- 一、數據庫
-
- 1.1 事務隔離級別
-
- 1. 事務的四大特性
- 2. Read Uncommited臟讀(未提交讀)
- 3. Read Commited幻讀(sql默認已提交讀)
- 4. Repeatable Read
- 5. Serializable
- 6. Snapshot(快照隔離)
- 7. 代碼開啟
- 8. For update和Repeatable Read的區別
- 1.2 各種鎖
-
- 1. 樂觀鎖 row version
- 2. 悲觀鎖 for update
- 3. 間隙鎖
- 1.3 索引
-
- 1. 索引失效
- 二、MQ
-
- 2.1 MQ
-
- 1. 為什么引入?優缺點
- 2. MQ高可用
- 3. 冪等
- 4. 消息丟失
- 5. 消息積壓處理
- 6. 讓我設計一個mq
- 7. massTrainsit對接mq
- 三、Redis緩存
-
- 3.1 基礎問題
-
- 1. 作用
- 2. 使用后產生的問題
- 3. 高可用
- 4. redis的數據類型
- 3.2 過期策略
項目地址
- 教程作者:
- 教程地址:
- 代碼倉庫地址:
- 所用到的框架和插件:
dbt
airflow
一、數據庫
1.1 事務隔離級別
1. 事務的四大特性
- Transaction Isolation Level,
2. Read Uncommited臟讀(未提交讀)
可以讀取到別的事務未提交的數據
- 原理:當前A事務可以讀其他事務B未提交的數據,B事務可能回滾也可能不回滾
- 特點:性能高,并發高,但數據不可靠
- 場景:報表和統計使用
3. Read Commited幻讀(sql默認已提交讀)
只能讀取已提交的數據,和uncommited相反,幻讀不能避免
- 原理:事務A只能讀取已經提交的事務
- 特點:避免了臟讀,但會出現,幻讀(兩次查詢結果結果行數不同,)
- 場景:大部分的OLTP系統
4. Repeatable Read
讀過的行會被加鎖,防止讀過的行被修改,幻讀不能避免
- 原理:事務A執行期間,讀過的行會被加鎖,直到事務結束,會有row version
- 特點:避免了臟讀和不可重復讀,但是不能避免幻讀,①別的事務可以讀取當前事務的鎖的值;②別的事務可以插入符合條件的行
- 場景:銀行扣款,保持余額一致
5. Serializable
將所有事務串行