mysql的事物隔離級別

2021-09-20 18:43:21 字數 1806 閱讀 3174

我們對於innodb這個資料儲存引擎,他最大的特點是支援了事務,還記得嗎,事務除了具有acid的四大特性以外,

事務是不是還有個隔離級別,還記得是什麼時候講過,講spring的時候,spring的事務控制有個isolation,還記得嗎

會出現髒讀,虛讀,對吧,不可重複讀,丟失第一類更新,丟失第二類更新的現象,總而言之,這個資料是有問題的,所以說

在定義事務標準的時候,除了那四大原則以外,事務的特點已經把隔離級別遞出來了,也就是說,你資料庫產品,如果想要

支援事務,你應該支援這4種隔離級別,這樣就可以解決常見的資料讀取的問題,比如四大隔離級別有哪些來著,能回憶起來

幾個,read-uncommit,讀未提交,既然有讀未提交,就有讀已提交,還有乙個read-commit,還有乙個叫repeatable-read,

最後乙個是什麼,read-seriable,序列化,其實在這四個隔離級別當中,serializable是事務最安全的,為什麼,我記得當時

還舉了這麼個例子,我又一張銀行卡,恰巧公司這個時候給我開工資,然後我又拿這張卡去取錢,同時在這個時間點兩個事務

操作同乙個賬戶,就會有這樣的問題,對吧,所以在定義事務特性的時候,就已經把隔離級別定義出來了,具備一種什麼什麼的

隔離級別,能夠解決什麼問題,那麼我們剛才所說的4個隔離級別,其實就可以解決髒讀,虛讀,不可重複讀的一系列問題,

只是級別的順序影響了他的事務隔離級別的嚴謹性,比如最嚴謹的是誰啊,就是serializable,哪有人說serializable這麼

嚴謹了,資料為什麼不用乙個serializable就行了,沒錯,資料越嚴謹資料越安全,但是會嚴重的影響效率和效能,咱們在

講資料庫的時候,比如92標準下,這點相對於我們覺得比較高達上的oracle,其實oracle對於事物的隔離級別就支援兩種,

一直叫做serializable,一種叫做repeatable-read,剩餘的讀已提交,讀未提交,oracle不支援,所以從這一點來看,

oracle的預設級別就是repeatable-read,而mysql的預設隔離級別是read-commit,其實你會發現,大多數的關係型的資料庫的

預設隔離級別是都是repeatable-read,但是mysql預設的是讀已提交,read-commit,能不能記住這四個隔離級別

事務的隔離級別:

1. read-committed : 讀已提交 (是msyql的預設隔離級別)

2. read uncommitted : 讀未提交

3. repeatable read (是oracle的預設隔離級別)

4. serializable

就是四種隔離級別,然後repeatable read,是oracle的預設隔離級別,讀已提交是msyql的預設隔離級別,所以你要依賴資料庫做

隔離級別,其實它控制的顆粒度是比較粗的,除非用資料庫的serializable,但是你把serializable改了之後,就會降低其他的效能,

所以這個隔離級別真的去做,還不是去依賴資料庫的隔離級別,而是依賴我們spring的傳播行為,spring的事務隔離級別最好的是

他可以把隔離級別細化到方法上,也就是僅限於這樣的乙個方法,受這樣的事務隔離級別,我們不是要配傳播行為嗎,required,

後面有乙個isolation,那個不就是配隔離級別的嗎,所以用spring來解決事務隔離級別方式更加細粒一些,那就藉著這個機會

給大家說一下,如果有人問你mysql裡面的隔離級別,說不出來,其實這塊是可以說出來的,沒有太大的問題,但是你要看每乙個隔離

級別單獨的解決什麼樣的問題,髒讀,虛讀,這些東西,那也不複雜,你到網上搜一遍,不過多介紹了

mysql事物隔離級別

複習鞏固加深印象 一。事務 acid原子性,隔離性,一致性,永續性 二。事務隔離級別 通常併發事務處理 1 寫 寫,存在更新丟失問題 2 讀 寫,有隔離性問題,可能遇到髒讀,不可重複讀,幻讀 其中 1.髒讀 a事務讀到b未提交的資料 2.不可重複讀 a事務第二次讀時讀到了b事務提交的寫資料,可能導致...

MySQL事物隔離級別

mysql其實是分為server層和引擎層。server層包括 聯結器 分析器 優化器 執行器 以及查詢快取。在這裡執行的一些mysql自己的一些邏輯,比如函式 儲存過程 檢視 觸發器,但是還沒有真正的去資料檔案中讀取資料。引擎層 innodb myisam memory 負責資料的查詢和提取。現在...

mysql事物隔離級別

事物是區分檔案儲存系統與nosql資料庫重要特性之一,其存在的意義是為了保證即使在併發情況下也能正確的執行crud操作。怎樣才算是正確的呢?這時提出了事物需要保證的四個特性即acid a 原子性 atomicity c 一致性 consistency i 隔離性 isolation d 永續性 du...