sql學習筆記 事務

2021-10-19 10:42:01 字數 745 閱讀 8748

事務的特性:

acid

原子性:乙個事物不可再分割,要麼都執行要麼都不執行

一致性:乙個事務的執行會使資料從乙個一致狀態切換到另乙個一致狀態

隔離性:乙個事務的執行不受其他事務的干擾

永續性:乙個事務一旦提交,則會永久的改變資料庫的資料

事務的建立:事務沒有明顯的開啟和結束的標記

開啟事務:

set autocommit=0

start transaction

編寫事務

結束事務

commit;或者rollback

對於同時執行的多個事務,當這些事務訪問資料庫中相同的資料時,如果沒有採取必要的隔離機制,就會導致各種併發問題

1.髒讀,對於兩個事務t1,t2,t1讀取了已經被t2更新但還沒有被提交的字段之後,若t2回滾,t1讀取的內容就是臨時且無效的。

2.不可重複讀,對於兩個事務t1,t2,t1讀取了乙個欄位沒然後t2更新了該字段之後,t1再次讀取同乙個字段,值就不同了

3.幻讀:對於兩個事務t1,t2,t1從乙個表中讀取了乙個字段,然後t2在該表中插入了一些新的行,如果t1再次讀取同乙個表的時候,就會多出幾行。

事務的隔離級別

read uncommitted:出現髒讀,幻讀,不可重複度

read committed 不會出現髒讀但會出現幻讀和不可重複讀

repeatable read 不會出現髒讀和不可重複讀但會出現幻讀

serializable 不會出現問題

MySQL學習筆記 事務

事務是用來保證一組資料庫的操作,要麼全部成功,要麼全部失敗 應用場景較多 如銀行轉賬,訂票等。mysql的事務是在引擎層支援的,原生的myisam不支援,因此主流使用innodb引擎。原子性顧名思義,不可分割,要麼所有指令都成功,要麼所有指令都失敗 一致性事務開始前和事務結束後,資料庫的狀態都是正常...

redis學習筆記 事務

事務是乙個單獨的隔離操作 事務中的所有命令都會序列化 按順序地執行。事務在執行的過程中,不會被其他客戶端傳送來的命令請求所打斷。事務是乙個原子操作 事務中的命令要麼全部被執行,要麼全部都不執行。注 對於redis事務是否是原子性可以參考我個人挺支援作者觀點。命令說明 multi 標記乙個事務塊的開始...

storm學習筆記 事務拓撲

storm實戰構建大資料實時計算 從零開始學storm 學習筆記 storm是乙個分布式流處理系統,利用anchor和ack機制保證了所有tuple都被成功處理。如果出錯了,則可以被重傳,但是如何保證出錯的tuple只被處理一次呢?storm提供了一套事務性元件transactional topol...