mysql事務處理與鎖機制
事務對鎖的影響
表結構
CREATE TABLE `user` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`name` varchar(255) DEFAULT NULL,
`nickname` varchar(255) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8;
使用者A:開啟事務 修改ID = 1 的資料 ,未提交事務
set autocommit = 0; 開啟事務
UPDATE `user` set name = 111 where id = 1;
使用者B : 修改ID = 1的資料,則會阻塞,只有當A提交事務B使用者才會執行
UPDATE `user` set name = 999 where id = 1; 等待
UPDATE `user` set name = 999 where id = 2; 執行成功 無需等待
--------------------------------------------------------
set autocommit = 0; 開啟事務
UPDATE `user` set name = 111 where nickname = 'lisi'; //nickname有索引則行鎖,無索引則表鎖
結論:事務產生鎖;事務中使用列如果有索引則會產生行鎖,沒有索引則產生表鎖
mysql範圍查詢對鎖的影響
set autocommit = 0;
UPDATE `user` set name = 111 where id >1 and id < 5 ;
#未提交事務
#鎖定id >1 and id < 5 之間的資料,
#ID在id >1 and id < 5 之間的curd操作都會等待事務提交後才會執行
相關文章
- Mysql事務隔離級別與鎖機制MySql
- mysql 事務,鎖,隔離機制MySql
- 詳解Mysql事務隔離級別與鎖機制MySql
- MySQL中的事務原理和鎖機制MySql
- Redis中的事務處理機制分析與總結Redis
- MySQL事務處理MySql
- MySQL事務與鎖MySql
- mysql 事務處理及表鎖定深入簡析MySql
- mysql之鎖與事務MySql
- 深入理解Mysql事務隔離級別與鎖機制問題RLOGMySql
- redis(10)事務和鎖機制Redis
- MySQL入門--事務與鎖MySql
- mysql鎖與事務總結MySql
- MySQL(一):MySQL資料庫事務與鎖MySql資料庫
- 分散式事務處理兩階段提交機制和原理分散式
- Mysql鎖與事務隔離級別MySql
- MySQL 事務和鎖MySql
- MySQL事務和鎖MySql
- nodejs 連線 mysql 查詢事務處理NodeJSMySql
- 分散式事務處理方案,微服事務處理方案分散式
- Spring事務專題(三)事務的基本概念,Mysql事務處理原理SpringMySql
- Mysql鎖機制分析MySql
- MySQL 筆記 - 事務&鎖MySql筆記
- 【MySQL】MySQL中的鎖機制MySql
- Mysql如何處理死鎖MySql
- MySQL原理簡介—8.MySQL併發事務處理MySql
- MySQL的事務機制和鎖(InnoDB引擎、MVCC多版本併發控制技術)MySqlMVC
- MySQL的事務處理及隔離級別MySql
- MySQL中不得不提的事務處理MySql
- mysqli 事務處理MySql
- springboot事務處理Spring Boot
- 深入理解Mysql——鎖、事務與併發控制MySql
- 深入理解 MySQL—鎖、事務與併發控制MySql
- T-SQL:事務鎖下的併發處理(十五)SQL
- mysql myisam的鎖機制MySql
- Mysql各種鎖機制MySql
- MySql(三) MySql中的鎖機制MySql
- MS SQL Server資料庫事務鎖機制分析(轉)SQLServer資料庫