資料庫事務髒讀 幻讀 不可重複讀的解決方法

2021-10-03 03:01:40 字數 606 閱讀 5376

以上出現的都是資料庫事務隔離級別的問題,sql標準定義了事務隔離級別分為四種(級別遞減):

隔離級別髒讀幻讀不可重複讀

read uncommitted(未提交讀)

可能可能

可能read commited (已提交讀)

不可能可能

可能repeatable read(可重複讀)

不可能不可能

可能serializable (序列化)

不可能不可能

不可能修改mysql的事務隔離級別

# 修改配置檔案

cd /etc/mysql/mysql.conf.d/

sudo vim mysqld.cnf

# 新增以下**

transaction-isolation=read-committed

在oracle,sqlserver中都是選擇讀已提交(read commited)作為預設的隔離級別,而mysql卻選擇可重複讀(repeatable read)作為預設隔離級別

事務 髒讀 不可重複讀 幻讀

建立db8資料庫 create database db8 使用db8資料庫 use db8 建立賬戶表 create table account id int primary keyauto increment 賬戶id name varchar 20 賬戶名稱 money double 賬戶餘額 ...

資料庫幻讀 髒讀 不可重複讀

要理解幻讀 髒讀 不可重複讀,必須先搞清楚事務的隔離級別 資料庫事務的隔離級別有4個,由低到高依次為read uncommitted read committed repeatable read serializable 這四個級別可以逐個解決髒讀 不可重複讀 幻讀 這幾類問題。隔離級別 髒讀不可重...

資料庫髒讀 不可重複讀 幻讀

資料庫髒讀 不可重複讀 幻讀 1.髒讀 髒讀就是指當乙個事務正在訪問資料,並且對資料進行了修改,而這種修改還沒有提交到資料庫中,這時,另外乙個事務也訪問這個資料,然後使用了這個資料。2.不可重複讀 是指在乙個事務內,多次讀同一資料。在這個事務還沒有結束時,另外乙個事務也訪問該同一資料。那麼,在第乙個...