在 mysql 中,”sc” 代表 second contract,它是一種事務(wù)隔離級(jí)別。second contract 隔離級(jí)別保證了讀已提交、不可重復(fù)讀取和幻讀屬性,可防止臟讀和不可重復(fù)讀取,同時(shí)允許幻讀。它通常用于需要高度一致性和并發(fā)性的應(yīng)用程序中。
MySQL 中的 SC
在 MySQL 中,”SC” 縮寫代表 “Second Contract”,意思是第二種合約。它是一種事務(wù)隔離級(jí)別,可以為并發(fā)事務(wù)提供更高的可見性。
Second Contract 隔離級(jí)別
Second Contract 隔離級(jí)別保證了以下屬性:
讀已提交(RC):事務(wù)只能讀取已提交的事務(wù)所做的更改。
不可重復(fù)讀取(NRR):在同一事務(wù)中,對(duì)同一行的多次讀取不會(huì)返回不同的結(jié)果,即使有其他事務(wù)在該行上進(jìn)行了提交。
幻讀(PR):事務(wù)不會(huì)看到其他事務(wù)插入的新行,直到該事務(wù)提交。
與其他隔離級(jí)別的比較
Second Contract 隔離級(jí)別與其他隔離級(jí)別的比較如下:
隔離級(jí)別 | 讀已提交 | 不可重復(fù)讀取 | 幻讀 |
---|---|---|---|
讀已提交 | ? | ? | ? |
可重復(fù)讀取 | ? | ? | ? |
Serializabl | ? | ? | ? |
Second Contract | ? | ? | ? |
使用場景
Second Contract 隔離級(jí)別通常用于需要高度一致性和并發(fā)性的應(yīng)用程序中。它可以防止臟讀和不可重復(fù)讀取,同時(shí)允許幻讀。
在以下情況下可以使用 Second Contract 隔離級(jí)別:
需要確保事務(wù)之間的高度一致性。
需要避免臟讀和不可重復(fù)讀取。
可以接受幻讀。