mysql(事務特性、隔離級別描述)

在mysql中只有使用了innodb數據引擎的數據庫或者表才支持事務;

事務特性

  • 原子性
    指業(yè)務邏輯上的一組操作,這組操作中的每個單元,要么全部成功執(zhí)行,要么全部執(zhí)行失敗;
  • 一致性
    事務必須使數據庫從一個一致性的狀態(tài)變?yōu)榱硪粋€一致性的狀態(tài);例如,A向B轉賬,A和B賬戶總額為2000,則轉賬完成之后的總額也應該為2000;
  • 隔離性
    在開啟多個事務進行數據處理的情況下,一個事務中數據操作不應該對另一個事務中的數據操作產生影響;
  • 持久性
    事務一旦提交,數據就應該永久保存下來;

事務的隔離級別(事務的特性中,最麻煩的一種特性就是隔離性)

如果不考慮事務的隔離性,會出現一下情況

  • 臟讀
    一個事務讀取到了另一個事務未提交的數據;
  • 不可重復讀
    一個事務讀取到另一個事務已提交的update操作;
  • 虛讀(幻讀)
    一個事務讀取到另一個事務已提交的insert操作;

隔離級別

  • READ_UNCOMMITTED(讀未提交) 會出現臟讀、不可重復讀、幻讀;
  • READ_COMMITTED(讀已提交) 防止臟讀,會出現不可重復讀、幻讀;
  • REPEATABLE_READ(可重復讀) 防止臟讀、不可重復讀,會出現幻讀;
  • SERIALIZABLE(串行化) 防止臟讀、不可重復讀、虛讀的發(fā)生;

注意:隔離界別越高,數據越安全,但性能越差;

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • 一、事務 1、事務四要素:ACID 對于事務,我之前的理解是很粗糙的,不就是為了保證操作的原子性么?一般訂單系統(tǒng)或...
    張偉科閱讀 1,515評論 0 5
  • 什么是事務? 事務是邏輯上的一組操作,要么都執(zhí)行,要么都不執(zhí)行。 事務最經典也經常被拿出來說例子就是轉賬了。 假如...
    趙客縵胡纓v吳鉤霜雪明閱讀 2,762評論 2 82
  • Spring 事務傳播特性和隔離級別 事務是處理邏輯原子性的保證,作為單個邏輯單元執(zhí)行一系列操作,要么執(zhí)行完成要么...
    自負的魚閱讀 9,119評論 1 33
  • 數據庫中經常被問到四大特性和隔離級別,一般都是涉及到概念性問題,在此做一些整理總結,方便理解。 1、事務的隔離級別...
    Hughman閱讀 2,006評論 0 5
  • 祈禱文 今天我是水晶的白狗。 我的心是愛的力量,我決定愛我自己;我信任,所以我愿意愛人,我愿意讓水晶般的心變得更柔...
    LOVE玲媛閱讀 224評論 0 0

友情鏈接更多精彩內容