事務ACID特性:數據庫的四大安全保障 想象你正在網購一雙運動鞋:下單時系統需要扣減庫存、創建訂單、扣減賬户餘額。如果在扣減庫存後突然斷電,會出現什麼情況?庫存減少了但訂單沒創建,這顯然是個災難!事務(Transaction) 就是為解決這類問題而生的數據庫核心機制。 事務必須滿足四大特性,業界簡稱ACID: 原子性(Atomicity):要麼全做,要麼全不做
事務隔離級別 兩次轉賬 轉賬後:A:6 B:12 總和:18 違反了一致性 事務併發遇到的不一致性問題: w=write c=commit a=abort w1=事務T1寫 x,y初始值為0 髒寫:一個事務修改了另一個未提交事務修改過的數據 w1[x=1]w2[x=2]w2[y
數據庫事務ACID特性與隔離級別 數據庫事務ACID特性 數據庫事務正確執行的四個基礎要素是原子性(Atomicity)、一致性(Consistency)、隔離性(Isolation)、持久性(Durability)。 原子性:是指事務包含的所有操作要麼全部成功,要麼全部失敗回滾,不可能停滯在中間某個環節。事務在執行過程中發生錯誤,會被回滾到事務開始前
一、 索引篇:B+樹、最左前綴與失效場景 Q1:MySQL 為什麼使用 B+ 樹而不是 B 樹或哈希表做索引? 標準答案: B+ 樹 vs B 樹:B+ 樹的非葉子節點只存索引鍵,不存數據,因此單個頁能存放更多鍵,樹的高度更低,I/O 次數更少。所有數據都在葉子節點,且葉子節點用鏈表連接,範圍查詢效率極高。 B+ 樹 vs 哈