首頁 資料庫 mysql教程 mysql怎麼修改交易隔離級別

mysql怎麼修改交易隔離級別

Feb 17, 2022 pm 05:24 PM
mysql 事務隔離等級

修改方法:1、在指令視窗中執行「set session transaction isolation level 事務層級;」語句即可;2、開啟「mysql.ini」文件,加入「transaction-isolation=事務層級」語句即可;2、開啟「mysql.ini」文件,加入「transaction-isolation=事務層級」語句即可。

mysql怎麼修改交易隔離級別

本教學操作環境:windows7系統、mysql8版本、Dell G3電腦。

mysql交易隔離等級

交易的隔離等級分為:未提交讀取(read uncommitted)、已提交讀取(read committed) 、可重複讀取(repeatable read)、串列化(serializable)。

  • Read Uncommitted(讀取未提交內容)

    在該隔離級別,所有交易都可以看到其他未提交交易的執行結果。本隔離等級很少用於實際應用,因為它的效能也不比其他等級好多少。讀取未提交的數據,也稱為髒讀(Dirty Read)。

  • Read Committed(讀取提交內容)

    這是大多數資料庫系統的預設隔離等級(但不是MySQL預設的)。它滿足了隔離的簡單定義:一個交易只能看見已經提交事務所所做的改變。這種隔離等級 也支援所謂的不可重複讀取(Nonrepeatable Read),因為相同交易的其他實例在該實例處理其間可能會有新的commit,所以同一select可能會傳回不同結果。

  • Repeatable Read(可重讀)

    這是MySQL的預設交易隔離級別,它確保相同交易的多個實例在並發讀取資料時,會看到同樣的數據行。不過理論上,這會導致另一個棘手的問題:幻讀 (Phantom Read)。簡單的說,幻讀指當使用者讀取某一範圍的資料行時,另一個事務又在該範圍內插入了新行,當使用者再讀取該範圍的資料行時,會發現有新的“幻影” 行。 InnoDB和Falcon儲存引擎透過多版本並發控制(MVCC,Multiversion Concurrency Control)機制解決了這個問題。

  • Serializable(可串行化)

    這是最高的隔離級別,它透過強制事務排序,使其不可能相互衝突,從而解決幻讀問題。簡言之,它是在每個讀取的資料行上加上共享鎖定。在這個級別,可能導致大量的超時現象和鎖定競爭。

mysql修改交易隔離等級

#方法1:執行指令修改

1

2

//查看当前事物级别:

SELECT @@tx_isolation;

登入後複製

mysql怎麼修改交易隔離級別

1

2

//设置mysql的隔离级别:

set session transaction isolation level 需要设置的事务隔离级别

登入後複製

範例

1

2

3

4

5

6

7

8

9

10

11

//设置read uncommitted级别:

set session transaction isolation level read uncommitted;

 

//设置read committed级别:

set session transaction isolation level read committed;

 

//设置repeatable read级别:

set session transaction isolation level repeatable read;

 

//设置serializable级别:

set session transaction isolation level serializable;

登入後複製

方法2:mysql.ini配置修改

開啟mysql.ini配置文件,在最後加上

1

2

3

#可选参数有:READ-UNCOMMITTED, READ-COMMITTED, REPEATABLE-READ, SERIALIZABLE.

[mysqld]

transaction-isolation = REPEATABLE-READ

登入後複製

這裡全域預設是REPEATABLE-READ,其實MySQL本來預設也是這個等級

【相關推薦:mysql影片教學

以上是mysql怎麼修改交易隔離級別的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
1 週前 By 尊渡假赌尊渡假赌尊渡假赌
倉庫:如何復興隊友
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
1 週前 By 尊渡假赌尊渡假赌尊渡假赌
倉庫:如何復興隊友
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱門文章標籤

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

PHP 的大數據結構處理技巧 PHP 的大數據結構處理技巧 May 08, 2024 am 10:24 AM

PHP 的大數據結構處理技巧

如何優化 PHP 中的 MySQL 查詢效能? 如何優化 PHP 中的 MySQL 查詢效能? Jun 03, 2024 pm 08:11 PM

如何優化 PHP 中的 MySQL 查詢效能?

如何在 PHP 中使用 MySQL 備份和還原? 如何在 PHP 中使用 MySQL 備份和還原? Jun 03, 2024 pm 12:19 PM

如何在 PHP 中使用 MySQL 備份和還原?

如何使用 PHP 插入資料到 MySQL 表? 如何使用 PHP 插入資料到 MySQL 表? Jun 02, 2024 pm 02:26 PM

如何使用 PHP 插入資料到 MySQL 表?

Java 枚舉類型在資料庫中的應用場景有哪些? Java 枚舉類型在資料庫中的應用場景有哪些? May 05, 2024 am 09:06 AM

Java 枚舉類型在資料庫中的應用場景有哪些?

如何修復 MySQL 8.4 上的 mysql_native_password 未載入錯誤 如何修復 MySQL 8.4 上的 mysql_native_password 未載入錯誤 Dec 09, 2024 am 11:42 AM

如何修復 MySQL 8.4 上的 mysql_native_password 未載入錯誤

PHP數組分頁的效能最佳化策略 PHP數組分頁的效能最佳化策略 May 02, 2024 am 09:27 AM

PHP數組分頁的效能最佳化策略

如何在 PHP 中使用 MySQL 預存程序? 如何在 PHP 中使用 MySQL 預存程序? Jun 02, 2024 pm 02:13 PM

如何在 PHP 中使用 MySQL 預存程序?

See all articles