Database Transaction & ACID

什麼是 Transaction ?

  • 遭遇失敗時的時光機:想當初薩諾斯響指事件後復仇者們只能選擇回到過去無限寶石還沒收集完成的時間,想辦法改變未來,阻止響指的發生。Transaction 也能做到一樣的事,當 transaction 中有至少一個操作失敗時,整個 transaction 都會回滾(rollback),回到進行 transaction 「之前」的狀態。
  • 獨立作業的守護者:這部分我好像想不到什麼梗來比喻 XD主要就是解決上面所說資料庫一致性的難題,讓不同 transaction 可以獨立不受干擾 (Provide isolation between programs accessing a database concurrently)

Transaction 常見指令

  • START TRANSACTION:建立一個 transaction
  • COMMIT:TRANSACTION 中的操作結束時進行 commit
  • ROLLBACK:也就是上面提到的可以將交易回滾
Transaction simple example

Save Point 儲存點

建立儲存點:SAVEPOINT 儲存點名稱
刪除儲存點:RELEASE SAVEPOINT 儲存點名稱
rollback 回某個儲存點:ROLLBACK TO SAVEPOINT 儲存點名稱
save point simple example

Transaction 四大特性: ACID

  • Atomicity 原子性
  • Consistency 一致性
  • Isolation 隔離性
  • Durability 永久性

小結 & 下回預告

--

--

什麼都想學的雜食性軟體工程師 🇹🇼 (https://github.com/kylemocode) 合作與聯繫 📪 oldmo860617@gmail.com

Love podcasts or audiobooks? Learn on the go with our new app.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
莫力全 Kyle Mo

莫力全 Kyle Mo

什麼都想學的雜食性軟體工程師 🇹🇼 (https://github.com/kylemocode) 合作與聯繫 📪 oldmo860617@gmail.com