黑猴子的家 mysql 事物簡述

2021-09-11 16:35:50 字數 2154 閱讀 2144

1、事務的概念

事務:一組邏輯操作單元,使資料從一種狀態變換到另一種狀態。

事務處理(事務操作):保證所有事務都作為乙個工作單元來執行,即使出現了故障,都不能改變這種執行方式。當在乙個事務中執行多個操作時,要麼所有的事務都被提交(commit),那麼這些修改就永久地儲存下來;要麼資料庫管理系統將放棄所作的所有修改,整個事務回滾(rollback)到最初狀態。

為確保資料庫中資料的一致性,資料的操縱應當是離散的成組的邏輯單元:當它全部完成時,資料的一致性可以保持,而當這個單元中的一部分操作失敗,整個事務應全部視為錯誤,所有從起始點以後的操作應全部回退到開始狀態。

2、事務的特點

事務的acid(acid)屬性

(1) 原子性(atomicity

原子性是指事務是乙個不可分割的工作單位,事務中的操作要麼都發生,要麼都不發生

(2)一致性(consistency

事務必須使資料庫從乙個一致性狀態變換到另外乙個一致性狀態

(3)隔離性(isolation

事務的隔離性是指乙個事務的執行不能被其他事務干擾,即乙個事務內部的操作及使用的資料對併發的其他事務是隔離的,併發執行的各個事務之間不能互相干擾。

(4)永續性(durability

永續性是指乙個事務一旦被提交,它對資料庫中資料的改變就是永久性的,接下來的其他操作和資料庫故障不應該對其有任何影響

3、事物的使用

以第乙個 dml 語句的執行作為開始

以下面的其中之一作為結束:

commit 或 rollback 語句

ddl 或 dcl 語句(自動提交)

使用者會話正常結束

系統異常終了

4、資料庫的隔離級別

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

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

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

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

(2)資料庫事務的隔離性: 資料庫系統必須具有隔離併發執行各個事務的能力, 使它們不會相互影響, 避免各種併發問題.

(3)乙個事務與其他事務隔離的程度稱為隔離級別. 資料庫規定了多種事務隔離級別, 不同隔離級別對應不同的干擾程度, 隔離級別越高, 資料一致性就越好, 但併發性越弱.

5、資料庫提供的 4 種事務隔離級別

oracle 支援的 2 種事務隔離級別:read commited, serializable

oracle 預設的事務隔離級別為:read commited

mysql 支援 4 種事務隔離級別.

mysql 預設的事務隔離級別為:repeatable read

6、在 mysql 中設定隔離級別

(1)每啟動乙個 mysql 程式, 就會獲得乙個單獨的資料庫連線. 每個資料庫連線都有乙個全域性變數@@tx_isolation, 表示當前的事務隔離級別

(2)檢視當前的隔離級別:select @@tx_isolation;

(3)設定當前 mysql 連線的隔離級別:set transaction isolation level read committed;

(4)設定資料庫系統的全域性的隔離級別:set global transaction isolation level read committed;

黑猴子的家 mysql 日期函式

1 獲取當前日期 select now 2 獲取日期,沒有時間 select curdate 3 獲取時間,沒有日期 select curtime 4 獲取日期的指定部分 select year now select month now select monthname now select day...

黑猴子的家 mysql 標識列

1 標識列總結 標識列又稱為自增長列 語法auto increment 特點 設定為標識列的字段,值不用手動插入,自動會有序列值,不用擔心重複問題 1 標識列字段的型別必須為數值型 2 標識列欄位必須為乙個key 主鍵或唯一或外來鍵 3 乙個表中至多有乙個標識列 4 如果用delete刪除,標識列的...

黑猴子的家 mysql 資料刪除

刪除的方式一 語法 delete from 表 where 條件 1 案例 刪除 號碼的長度小於11位的女神資訊 delete from beauty where length phone 11 2 案例 刪除小燕子 delete from beauty where name 小燕子 delete ...