1. 程式人生 > 其它 >Mysql 事務和儲存引擎

Mysql 事務和儲存引擎

一、事務的概念

  • 事務是一種機制、一個操作序列,包含了一組資料庫操作命令,並且把所有的命令作為一個整體一起向系統提交或撤銷操作請求,即這一組資料庫命令要麼都執行,要麼都不執行。如果一組命令執行到一半後面沒有執行,那之前執行的內容會進行回退,來保證整體性。
  • 事務是一個不可分割的工作邏輯單元,在資料庫系統上執行併發操作時,事務是最小的控制單元。
  • 事務適用於多使用者同時操作的資料庫系統的場景,如銀行、保險公司及證券交易系統等等。
  • 事務通過事務的整體性以保證資料的一致性。
  • 事務能夠提高在向表中更新和插入資訊期間的可靠性。

所謂事務,它是一個操作序列,這些操作要麼都執行,要麼都不執行,它是一個不可分割的工作單位。

二、事務的ACID特點

ACID,是指在可靠資料庫管理系統(DBMS)中,事務(transaction)應該具有的四個特性∶原子性(Atomicity)、一致性(Consistency)、隔離性(Isolation)、永續性 (Durability)。這是可靠資料庫所應具備的幾個特性。

1. 原子性∶

是指事務是一個不可再分割的工作單位,事務中的操作要麼都發生,要麼都不發生。

事務是一個完整的操作,事務的各元素是不可分的。

事務中的所有元素必須作為一個整體提交或回滾。

如果事務中的任何元素失敗,則整個事務將失敗。

案例∶

A給B轉帳100元錢的時候只執行了扣款語句,就提交了,此時如果突然斷電,A賬號已經發生了扣款,B賬號卻沒收到加款,在生活中就會引起糾紛。這種情況就需要事務的原子性來保證事務要麼都執行,要麼就都不執行。

2. 一致性∶

是指在事務開始之前和事務結束以後,資料庫的完整性約束沒有被破壞。也就是資料整體不會有改變或丟失。

當事務完成時,資料必須處於一致狀態。

在事務開始前,資料庫中儲存的資料處於一致狀態。

在正在進行的事務中,資料可能處於不一致的狀態。

當事務成功完成時,資料必須再次回到已知的一致狀態。