java 不可不知的數據庫知識-----事物

每個java開發對數據庫都不會陌生,提到數據庫,那麼就必定要了解的一個知識點------事物,下面就對事物簡單記錄一下相關知識點。html

最初接觸事物的時候實際上是從JDBC事物開始的,JDBC比較基礎,這裏不作太多解釋(網上一大堆)。java

  • 事物的四大特性
  1. 原子性:顧名思義,原子是目前科學技術上不可再分的最小單位,事物的原子性是指一個事物是一個總體,要麼所有成功,要麼所有失敗。
  2. 一致性:事物的一致性官方的解釋:事物必須是數據庫從一個一致性狀態到另外一個一致性狀態,這個理解起來有些複雜,其實一致性就是數據庫中的數據操做要保證數據的一致,不能憑空增減。
  3. 隔離性:這個比較好理解,就是不一樣的事物之間不能彼此干擾。
  4. 持久性:事物的持久性就是事物一旦提交,那麼這個事物對數據庫的操做是永久性的。
  • 事物的隔離級別

說明:在多線程的程序下,多線程各自開啓了本身的事物進行數據庫操做時,數據庫要保證隔離操做,以保證各個線程獲取數據時的準確性。sql

  1. 若是不考慮事物的一致性會引發哪些後果呢
    1. 髒讀:即一個事物讀取了另外一個事物未提交的數據
    2. 不可重複讀:即一個事物先後讀取數據庫獲得的數據不一致
    3. 虛讀:即在一個事物內讀到了另外一個事物將要插入的數據,致使先後讀取不一致
  2. Mysql四種隔離級別
    1. Serializable(串行化):可避免髒讀、不可重複讀、虛讀
    2. Repeatable read(可重複讀):可避免髒讀、不可重複讀
    3. Read committed(讀已提交):只可避免髒讀
    4. Read umcommitted(讀未提交):最低級別,不可避免任何狀況

 

以上是學習事物的隨筆,但願各位大大多多指正,謝謝!數據庫

參考:大神孤傲蒼狼博客:https://www.cnblogs.com/xdp-gacl/p/3984001.html多線程

相關文章
相關標籤/搜索