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
- MySQL中的事務原理和鎖機制MySql
- Redis中的事務處理機制分析與總結Redis
- MySQL事務與鎖MySql
- MySQL事務處理MySql
- MySQL 事務機制MySql
- mysql 事務處理及表鎖定深入簡析MySql
- mysql之鎖與事務MySql
- JiveJdon 的事務處理機制是什麼?
- Mysql的鎖機制與PHP檔案鎖處理高併發簡單思路MySqlPHP
- MYSQL--事務處理MySql
- mysql事務處理(轉)MySql
- redis(10)事務和鎖機制Redis
- 【Mysql】mysql事務處理用法與例項詳解MySql
- MySQL鎖機制與MVCCMySqlMVC
- MySQL入門--事務與鎖MySql
- mysql鎖與事務總結MySql
- [MYSQL -26]控制事務處理MySql
- MySQL中的事務處理MySql
- ITL與事務處理
- 深入理解Mysql事務隔離級別與鎖機制問題RLOGMySql
- MySQL(一):MySQL資料庫事務與鎖MySql資料庫
- 分散式事務處理兩階段提交機制和原理分散式
- 推薦:J2EE容器事務XA處理機制
- Mysql鎖與事務隔離級別MySql
- Mysql鎖機制MySql
- MySQL 事務和鎖MySql
- MySQL事務和鎖MySql
- SQL鎖機制和事務隔離級別SQL
- 分散式事務處理方案,微服事務處理方案分散式
- Mysql鎖機制分析MySql
- mysql的鎖機制MySql
- MySQL 筆記 - 事務&鎖MySql筆記
- MySQL詳解--鎖,事務MySql
- mysql事務和鎖InnoDBMySql