SQL 與資料轉換 基礎
SQL 交易與 ACID 特性
請說明資料庫交易的 ACID 特性與隔離層級。
ACID
- Atomicity(原子性):交易內所有操作要嘛全成功,要嘛全回滾。
- Consistency(一致性):交易執行前後,資料庫都處於合法狀態。
- Isolation(隔離性):並發交易互相隔離,彷彿依序執行。
- Durability(持久性):已提交的交易,即使系統崩潰也不會丟失。
隔離層級(由低到高)
- READ UNCOMMITTED:可能有髒讀、不可重複讀、幻讀。
- READ COMMITTED:防髒讀,但可能不可重複讀、幻讀。
- REPEATABLE READ:防髒讀與不可重複讀,但可能幻讀。
- SERIALIZABLE:完全隔離,無任何讀異常,但並發最低。
層級越高越安全,但並發性能越低。PostgreSQL 預設 READ COMMITTED,MySQL InnoDB 預設 REPEATABLE READ。
常見讀異常
- 髒讀:讀到另一交易未提交的資料。
- 不可重複讀:同一交易內兩次讀同一行,結果不同。
- 幻讀:同一交易內兩次查詢,第二次出現新行。
✦ AI 模擬面試
輸入你的答案,AI 即時分析精準度與改進空間
登入後即可使用 AI 評分
