使用場景說明:事物能夠保證資料的完整性和一致性,讓使用者的操作更加安全。
在使用事物之前,先要確保表的儲存引擎是innodb
型別,只有這個型別才可以使用事物,mysql
資料庫中表的儲存引擎預設是innodb
型別。
開始事物、提交事物、回滾事物
begin
;# 或
start
transaction
;
說明:
# 取消事物的自動提交,如果設定=1表示自動提交
set autocommit =0;
# 開始事物,下面忘了begin,commit表示提交上面的所有操作
begin
;# 提交事務:將本地檔案中的資料提交掃物理表中,完成資料的更新
commit
;# 事物回滾:放棄本地快取檔案中的儲存資料,表示回到開始事物前的狀態
alter
、create
、drop
(除表數增刪改之外)等的大多數操作都是隱式提交,這些sql
語句不能放在事物中,即使放在事物中也會立即生效,不能回滾。
MySQL學習筆記 事務
事務是用來保證一組資料庫的操作,要麼全部成功,要麼全部失敗 應用場景較多 如銀行轉賬,訂票等。mysql的事務是在引擎層支援的,原生的myisam不支援,因此主流使用innodb引擎。原子性顧名思義,不可分割,要麼所有指令都成功,要麼所有指令都失敗 一致性事務開始前和事務結束後,資料庫的狀態都是正常...
mysql 筆記 事務
一 問題讀取 1.髒讀 dirty read 事務1更新了某一條記錄,但未提交 事務2讀取到新的未提交記錄 事務1回滾。2.不可重複讀取 nonrepeatable read 不可重複讀,是指在資料庫訪問中,乙個 事務範圍內兩個相同的查詢卻返回了不同資料。例子 事務1讀取某一條記錄 事務2修改事務1...
mysql筆記 事務
寫日誌為什麼比直接寫磁碟要快?使用事務日誌,儲存引擎在修改表的資料時,只需要修改其記憶體拷貝,再把該修改行為記錄到硬碟上的事務日誌中,而不用每次都將修改的資料本身持久到磁碟。事務日誌採用的是追加的方式,因此寫日誌的操作是磁碟上一小塊區域內的順序i o,而不是隨機i o,所以快很多。事務日誌持久以後,...