在解釋 Isolation Level 隔離層級之前,先說明三個名詞 : 髒讀 (dirty read)、幻讀 (phantom read)、不可重複讀 (Non-Repeatable Read)。 髒讀 (dirty read) : 指在一個交易讀取到另一個尚未提交 (un-commit) 的交易資料。如果那個交易最終被回滾(Rollback),則讀到的資料就是不準確的,這就是所謂的「髒讀」。 髒讀就像做夢撿到錢,結果醒來什麼都沒有。 幻讀 (phantom read) : 指在一個交易中,當它多次執行同一查詢時,由於其他交易插入、更新或刪除了符合查詢條件的行,導致每次查詢返回的結果不同。 幻讀就像見到鬼,資料多了或是少了。 不可重複讀 (Non-Repeatable Read) : 指在一個交易在多次讀取同一筆資料時,該資料的值因為另一個交易的更新而發生變化。 不可重複讀就像碰到魔術師,明明手上是棍子,等一下 變成鴿子。 髒讀、幻讀、不可重複讀都不是正常的現象,除非有特別的目的,不然都應該盡量避免。 隔離層級是什麼? 隔離層級(Isolation Level)是資料庫管理系統中設定交易(Transaction)之間互相隔離程度的配置選項。它控制了在多個交易並發 (concur…