事務:一個獨立的邏輯工作單元。它有特定的一系列必須作為一個整體一起成功或者失敗的SQL語句組成。是一個要麼全有要麼全無,很個性的一個東東。
事務的四大屬性——ACID屬性:原子性(atomicity)、一致性(consistency)、隔離性(isolation)、持久性(durability)
原子性:事務中的所有任務都必須執行,或者不執行。不存在部分事務。
一致性:事務將數據庫從一個一致性狀態帶到另一個一致性狀態。
隔離性:一個事務所帶來的影響知道該事物提交之前對其他事務來說都是不可見得。
持久性:經過提交的事務所進行的修改是永久性的。
理解業務需求是設計一個好的事物的核心。除此之外還要注意以下幾條規則:
1、每一個邏輯工作單元作為一個獨立的事務來處理,不包含額外的工作。
2、確保數據在事務開始時是一致的,並且到事務完成的時候仍然是一致的。
3、按你的需要來占用資源。不能再事務中釋放資源,這違背了ACID原則。
4、使用保存點來標記適合於事務中間進行回滾的特定SQL語句。
5、事務必須顯式的提交或者回滾,不要依賴數據庫的默認行為或某個開發工具來進行提交或回滾。因為默認行為可能會發生改變。