mysql事務隔離級別瞭解(一起學習吧)

SQL MySQL 教育 帥帥的日常 2017-06-04

一、事務隔離級別

標準sql中定義事務隔離級別有四種: read uncommitted(未提交讀)、read committed(提交讀)、repeatable read(重複讀)、serializable(串行讀)

不同的隔離級別有不同的效果,有下列三種:

  1. dirty read(髒讀):一個事務可以讀取另一個尚未提交的修改的數據

  2. nonreaptable read(不可重複讀):在同一個事務中,在不同時刻對某一行進行讀取的時候,讀取的數據不一致,可能這行數據被update或delete

  3. phantom read(幻想讀):在同一個事務中,同一個查詢多次對數據進行查詢的時候,輸出的結果集不一致,可能是由於其他操作如insert的事務提交造成的

隔離級別越高的話,數據庫的併發性也就越低

二、mysql的事務隔離級別

1、 查看mysql的隔離級別:

SELECT @@GLOBAL.tx_isolation, @@tx_isolation;

通過sql可以查看,數據隔離級別為reaptable read(重複讀)

2、修改數據庫的隔離級別:

可以使用set語句,如下:

SET [SESSION | GLOBAL] TRANSACTION ISOLATION LEVEL {READ UNCOMMITTED | READ COMMITTED | REPEATABLE READ | SERIALIZABLE}

本篇先簡單描述,後續的話會添加對應的事例對此模塊進行實例說明,歡迎各位指正,共同學習

相關推薦

推薦中...