數據庫事務屬性ACIDmysql
A:原子性,一個事務全部操做必須所有成功或者所有失敗。sql
C:一致性,數據庫必須從一個一致性狀態轉變到另外一個一致性狀態。數據庫
I:隔離性,事務必須具備隔離性,一個事務不能影響到其餘事務。有分四種事務隔離級別。oracle
D:持久性,事務提交後,對數據庫中的數據的改變應該是永久性的,接下來其餘操做和數據庫故障不該該對其形成影響。事務
五種狀態:it
一、活動狀態:事務在執行時的狀態叫活動狀態。table
二、部分提交狀態:事務中最後一條語句被執行後的狀態叫部分提交狀態。數據
三、失敗狀態:事務不能正常執行的狀態叫失敗狀態。查詢
四、提交狀態:事務部分提交後,將往硬盤寫入數據,當最後一條數據被寫入後狀態叫提交狀態。進入提交狀態的事務就成功完成了。tab
五、停止狀態:事務已經回滾且數據庫已經恢復到事務開始執行前的狀態叫停止狀態。
髒讀:一個事務讀取了另外一個事務未提交狀態的數據,叫髒讀。
不可重複度:一個事務範圍內屢次查詢,返回了不一樣的值,因爲事務間隔內,數據被另外一個事務提交修改。讀取了另外一個事務提交的數據。
幻讀:一個事務讀取了另外一個事務已提交的數據。可是與不可重複度區別在於,不可重複度是針對同一個數據項,幻讀針對的是一批數據。
mysql數據庫的四種事務隔離級別:
串行化Serializable: 可避免髒讀、不可重複度、幻讀
可重複度Repeatable read :可避免髒讀、不可重複度
讀已提交Read committed :可避免髒讀
讀未提交Read uncommitted:最低級別,任何狀況都不保證。
mysql默認的事務隔離級別是可重複度,
oracle數據庫只支持串行化和讀已提交,默認事務隔離級別是讀已提交。