MySql中的事務

2021-07-09 17:24:10 字數 1095 閱讀 2126

一.mysql的事務支援不是繫結在mysql伺服器本身,而是與儲存引擎相關

1.myisam:不支援事務,用於唯讀程式提高效能 

2.innodb:支援acid事務、行級鎖、併發

二.乙個事務是乙個連續的一組資料庫操作,就好像它是乙個單一的工作單元進行。換言之,永遠不會是完整的事務,除非該組內的每個單獨的操作是成功的。如果在事務的任何操作失敗,則整個事務將失敗。

實際上,會俱樂部許多sql查詢到乙個組中,將執行所有的人都一起作為事務的一部分。

事務的特性: 

事務有以下四個標準屬性的縮寫acid,通常被稱為:

原子性: 指一組操作,要麼都成功執行,要麼都不執行

一致性: 確保

資料庫正確地改變狀態後,成功提交的事務。

隔離性: 在所有的操作沒有執行完畢之前, 會話不能夠看到中間改變的過程。

永續性: 確保提交的事務的結果或效果的系統出現故障的情況下仍然存在。事務產生的影響不能夠撤銷

三.事務的操作

開啟事務:

start  transaction

要執行的sql語句1

要執行的sql語句2

........

commit 提交

rollback 回滾

注意:當乙個事務commit,或者rollback就結束了

在mysql中,事務開始使d用commit或rollback語句開始工作和結束。開始和結束語句的sql命令之間形成了大量的事務。

commit & rollback: 

這兩個關鍵字提交和回滾主要用於mysql的事務。

當乙個成功的事務完成後,發出commit命令應使所有參與表的更改才會生效。

如果發生故障時,應發出乙個rollback命令返回的事務中引用的每乙個表到以前的狀態。

四.mysql中事務實現的原理

注:在不使用事務的時候呼叫的sql語句直接作用於表,在使用了事務後sql語句首先記錄在了事務日誌檔案中,等到commit後才作用於表中。

mysql中事務的特性 mysql中事務的四大特性

原子性 atomicity 事務就像 原子 一樣,不可被分割,組成事務的dml操作語句要麼全成功,要麼全失敗,不可能出現部分成功部分失敗的情況。一致性 consistency 一旦事務完成,不管是成功的,還是失敗的,整個系統處於資料一致的狀態。隔離性 isolation 乙個事務的執行不會被另乙個事...

mysql中的事務和鎖 MySQL中的事務和鎖

鎖 行級鎖select for update nowaitfalse,skip false 注意必須用在事物裡面 所有匹配的行將被鎖定,知道事務結束。這意味著可以通過鎖防止資料被其他事務修改。一般情況下如果其他事務鎖定了相關行,那麼本查詢將被阻塞,直到鎖被釋放。事務事務的四大特性 1.原子性 事務包...

MySQL中的事務

當多個使用者訪問同乙份資料,乙個使用者在更改資料的過程中可能有其他使用者同時發起更改請求,為保證資料庫記錄的更新從乙個一致性狀態變更為另外乙個一致性狀態,使用事務處理是非常必要的。事務具有以下4個特性 1 原子性。事務中所有的操作視為乙個原子單元,即對於事務所進行的資料修改等操作只能是完全提交或者完...