事務的特性:
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...