事務的一些基本常識

2021-10-24 01:29:57 字數 1180 閱讀 3387

事務指的是邏輯上的一組操作,組成這組操作的各個單元要麼全都成功,要麼全都失敗

從執行效果來看,我們可以將在事務中的多行**,看成不可分割的一行**,只要其中乙個部分執行不成功,那麼整段**都會垮掉;這樣做的作用,就是為了保證多條運算元據庫的sql語句,要麼同時成功,要麼就同時失敗。現實中的應用最常見的就是銀行轉賬案例。

注意:支援事務的資料庫引擎為innodb。myisam不支援事務。

1.原子性:

事務的原子性是指事務必須是乙個原子的操作序列單元,全部執行成功,或全部執行失敗,事務開 始後所作的操作要麼全部做完,要麼全部不做,不可能停滯在中間環節,出錯即回滾

2.一致性

保證資料庫的完整性和一致性,從a到b轉賬,a-則b一定要+

3.隔離性:

在併發事務相互隔離,互不影響

4.永續性:

事務的永續性是指事務一旦提交就會被刻到光碟,永久儲存

注意:隔離級別的設定只對當前鏈結有效。對於使用mysql命令視窗而言,乙個視窗就相當於乙個鏈結,當前視窗設定的隔離級別只對當前視窗中的事務有效;對於jdbc運算元據庫來說,乙個connection物件相當於乙個鏈結,而對於connection物件設定的隔離級別只對該connection物件有效,與其他鏈結connection物件無關。

以begin transaction 開始,

中間**

以commit 或 rollback 結束

自動提交,例如ddl(建庫建表語句)

讀未提交:read_uncommitted, 會造成髒讀

讀已提交:read_committed, 會造成不可重複讀

可重複讀:repeatable_read, 會造成幻讀

順序讀:serializable

注意:更高的隔離級別能解決上一級的問題,隔離級別越高安全性越高,併發越低,執行效率越低。

隔離級別的原理:

讀未提交(ru): 有行級的鎖,沒有間隙鎖。它與rc的區別是能夠查詢到未提交的資料。

讀已提交(rc):有行級的鎖,沒有間隙鎖,讀不到沒有提交的資料。

可重複讀(rr):有行級的鎖,有間隙鎖,每次讀取的資料都是一樣的,沒有幻讀的情況。

序列化(s):有行級鎖,也有間隙鎖,讀表的時候,就已經上鎖了

mysql的一些基本常識

1.主鍵的選取 主鍵的字段不能有null存在 主鍵應該使用bigint自增,而不是int 主鍵的選取預設為id 聯合主鍵 就是多個欄位被設定為主鍵,這裡主鍵欄位的值是允許相同的,只要不是所有字段相同即可 聯合主鍵不常用,它給關係表帶來了複雜度的提公升 我至今沒用過,好菜 一些簡單常用的操作 資料庫的...

了解TensorBoard一些基本常識

參考部落格 tensorboard 是用於視覺化 tensorflow 模型的訓練過程的工具。1 如何工作 tensorboard 是通過一些操作 summary operations 將資料記錄到檔案 event files 中,然後再讀取檔案來完成作圖的。想要在瀏覽器上看到 tensorboar...

關於事務我們需要了解的一些基本常識

事務就是對一系列的資料庫操作進行統一的提交或回滾操作,比如說乙個轉賬功能,要更改到帳戶兩邊的資料,這時候就必須要用事務才能算是嚴謹的做法。要麼成功,要麼失敗,保持資料一致性。如果中間有乙個操作出現異常,那麼回滾之前的所有操作。第一 事務處理位於業務層,spring 提供了分層設計業務層的事務處理解決...