MySQL設定隔離級別
SET [SESSION | GLOBAL] TRANSACTION ISOLATION LEVEL {READ UNCOMMITTED | READ COMMITTED | REPEATABLE READ | SERIALIZABLE}
設定innodb的事務級別方法是:set 作用域 transaction isolation level 事務隔離級別,例如~
mysql> set global transaction isolation level read committed; //全域性的
mysql> set session transaction isolation level read committed; //當前會話
1.全域性修改,修改mysql.ini配置檔案,在最後加上
#可選引數有:READ-UNCOMMITTED,
READ-COMMITTED, REPEATABLE-READ, SERIALIZABLE.
[mysqld]
transaction-isolation
= REPEATABLE-READ
這裡全域性預設是REPEATABLE-READ,其實MySQL本來預設也是這個級別
二個或以上事務在操作同一個共享記錄集時,可能會出現的問題:
(A)髒讀 (B)不可重複讀 (C)幻讀
隔離級別:
(1)read-uncommit, (2)read-commit, (3)read-repeatable, (4)read-serializable
都是用來阻止上面的問題的,其中:
(1)什麼都阻止不了。
(2)阻止(A)
(3)阻止(A)(B)
(4)阻止(A)(B)(C)
(1)->(4)隔離級別越高,效能損失越大
注意:預設的行為(不帶session和global)是為下一個(未開始)事務設定隔離級別。如果你使用GLOBAL關鍵字,語句在全域性對從那點開始建立的所有新連線(除了不存在的連線)設定預設事務級別。你需要SUPER許可權來做這個。使用SESSION 關鍵字為將來在當前連線上執行的事務設定預設事務級別。 任何客戶端都能自由改變會話隔離級別(甚至在事務的中間),或者為下一個事務設定隔離級別。
你可以用下列語句查詢全域性和會話事務隔離級別:
SELECT @@global.tx_isolation;
SELECT @@session.tx_isolation;
SELECT @@tx_isolation;
網上有人使用set tx_isolation命令:
mysql> set tx_isolation='read-committed';
Query OK, 0 rows affected (0.00 sec)
+----------------+
| @@tx_isolation |
+----------------+
| READ-COMMITTED |
+----------------+
1 row in set (0.00 sec)
mysql> select @@session.tx_isolation;
+------------------------+
| @@session.tx_isolation |
+------------------------+
| READ-COMMITTED |
+------------------------+
1 row in set (0.00 sec)
事務隔離變了。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29893219/viewspace-1851543/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- MySQL的隔離級別MySql
- MySQL事務隔離級別MySql
- MySQL 事務隔離級別MySql
- [Mysql]事務/隔離級別MySql
- [golang]MySQL中如何為單個事務設定隔離級別GolangMySql
- MySQL事務的隔離級別MySql
- MySQL 的隔離級別 自理解MySql
- 理解MySQL事務隔離級別MySql
- MySQL的事務隔離級別MySql
- 淺析MySQL InnoDB的隔離級別MySql
- Mysql資料庫的隔離級別MySql資料庫
- MySQL事務隔離級別和MVCCMySqlMVC
- 理解mysql的事務隔離級別MySql
- 啥是 MySQL 事務隔離級別?MySql
- mysql如何修改事務隔離級別MySql
- MySQL之事務隔離級別和MVCCMySqlMVC
- mysql事務隔離級別和鎖MySql
- Mysql鎖與事務隔離級別MySql
- Mysql 四種事務隔離級別MySql
- Postgresql 的預設隔離級別SQL
- MySQL的事務預設隔離級別是什麼MySql
- MySQL 的四種事務隔離級別MySql
- MySQL 事務隔離級別實現原理MySql
- MySQL 事務的隔離級別初窺MySql
- MySQL的事務處理及隔離級別MySql
- 徹底搞懂 MySQL 事務的隔離級別MySql
- Mysql事務隔離級別與鎖機制MySql
- MySQL的事務隔離級別是什麼?MySql
- MySQL 事務隔離級別解析和實戰MySql
- 四個案例看懂 MySQL 事務隔離級別MySql
- MySQL 日誌之 binlog 格式 → 關於 MySQL 預設隔離級別的探討MySql
- 論 MySQL 之事務隔離級別 | 資料庫篇MySql資料庫
- MySQL資料庫中的四種隔離級別MySql資料庫
- MySQL資料庫引擎、事務隔離級別、鎖MySql資料庫
- 面試問爛的 MySQL 四種隔離級別面試MySql
- 如何理解mysql 的事務隔離級別 repeatable readMySql
- MySQL RC隔離級別下罕見的gap lockMySql
- 資料庫隔離級別資料庫
- Mariadb之事務隔離級別