1. 程式人生 > 實用技巧 >辛普森悖論

辛普森悖論

事務

什麼是事務

一個事務是一個完整的業務邏輯單元,不可再分。

與事務相關的語句只有(DML語句)。(insert delete update)

事務原理

事務的特性

事務包含四大特性:ACID

A:原子性:事務最小的工作單元,不可再分

C:一致性:事務必須保證多條DML語句同時成功或者同時失敗

I: 隔離性:事務A與事務B之間具有隔離

D:永續性:永續性說的是最終資料必須持久化到硬碟檔案中,事務才算成功的結束

事務的隔離性

事務的隔離性存在隔離級別,理論上隔離級別有4個:

第一級別:讀未提交

​ 對方事務還沒有提交,我們當前事務可以讀取到對方未提交的資料。

​ 讀未提交存在髒讀現象

第二級別:讀已提交

​ 對方事務提交之後的資料我方可以讀取到。

​ 這種隔離級別解決了髒讀現象。

​ 讀已提交存在的問題是:不可重複讀。

第三級別:可重複度

​ 這種隔離級別解決了:不可重複讀問題

​ 這種隔離級別存在的問題是:讀到的資料都是虛的。

第四級別:序列化讀/序列化讀

​ 解決了所有問題。

​ 效率低。需要事務排隊。

開始事務

BEGIN TRANSACTION <事務名稱> |@ <事務變數名稱>

提交事務

COMMIT TRANSACTION <事務名稱> |@ <事務變數名稱>

撤銷事務

ROLLBACK [TRANSACTION] <事務名稱> |@ <事務變數名稱> |<儲存點名稱> | @<含有儲存點名稱的變數名>