事務:是指資料庫中的一連串的連續操作,而且這一系列連續的操作要麼全部執行成功,要麼全部執行不成功。具有著原子性。
事務的特點:
1,原子性:要麼都執行成功,要麼都不成功
2,一致性
3,隔離性:不同的事務不知道對方的執行過程以及執行到了什麼程度
4,永續性:每個事務執行完畢必然會對資料庫進行資料的持久化修改
髒讀:兩個事務併發執行,當事務1 對資料庫中的表進行了修改之後,事務2 對記錄進行讀取,但是事務1 由於某些原因沒有能夠儲存修改,進行了回滾,那麼事務2 讀取的資料便是髒資料。
不可重複讀: 兩個事務併發執行,事務1 首先對記錄進行讀取,然後在事務1 再次對記錄進行讀取之前,事務2 已經對記錄進行了修改,那麼事務1 對資料庫中某條記錄的讀取結果是不一樣的,也就是說沒有重複的讀取出相同結果。
幻讀: 兩個事務併發執行,幻讀主要是針對資料庫的許多記錄,由於表中的記錄條數的增加或者減少,從而產生的幻讀。如 : 事務1 對某張表中的所有記錄進行了修改,將每條記錄的某條屬性(如:level)進行了統一修改,但是接下來事務 2 對該錶進行了記錄的新增,增加了一條新的記錄,這條記錄的level 屬性與其他所有的記錄不一致。那麼當事務1 在對錶中記錄進行讀取的時候,便會讀取到這一條 沒有修改過level 的記錄,就會覺得之前的修改操作是不是幻覺,是不是之前的修改操作沒有執行成功。
事務 髒讀 不可重複讀 幻讀
建立db8資料庫 create database db8 使用db8資料庫 use db8 建立賬戶表 create table account id int primary keyauto increment 賬戶id name varchar 20 賬戶名稱 money double 賬戶餘額 ...
髒讀,不可重複讀,幻讀
髒讀,不可重複讀,幻讀是由於資料庫事務的隔離性導致的問題。髒讀 乙個事務讀取到了其它未提交事務操作的記錄。不可重複讀 乙個事務a內,首次查詢到一條相同記錄,然後事務b修改該條記錄並提交,事務a再次執行相同查詢,得到了事務b更新後的結果,事務a兩次相同的查詢,卻得到了不同的結果,這個叫做不可重複讀。是...
髒讀 不可重複讀 幻讀
髒讀 事務a使用了資料,但是還沒來得及提交,事務b就使用了這個資料,對於事務b來說就是髒讀。允許髒讀 sql server select from category with nolock 不可重複讀 事務a在9點和12點都會操作乙份資料,但是在10點的時候,事務b也操作了該份資料,並且使其數值進行...