mysql innodb的行鎖
隔離基本-- REPEATABLE-READ
root@sakila 10:14:32>show index from tab_no_index \G
*************************** 1. row ***************************
Table: tab_no_index
Non_unique: 1
Key_name: id
Seq_in_index: 1
Column_name: id
Collation: A
Cardinality: 5
Sub_part: NULL
Packed: NULL
Null: YES
Index_type: BTREE
Comment:
Index_comment:
1 row in set (0.00 sec)
同一個會話:
set autocommit=0;
--在索引上使用了鎖,具體使用哪個索引,需要看執行計劃
root@sakila 10:11:17>select * from tab_no_index where id=1 for update;
+------+------+
| id | name |
+------+------+
| 1 | 1 |
+------+------+
1 row in set (0.00 sec)
--即使同一個會話,插入一條相同key的記錄也會鎖住
root@sakila 10:11:32>insert into tab_no_index values(1,'4');
ERROR 1205 (HY000): Lock wait timeout exceeded; try restarting transaction
root@sakila 10:12:45>
root@sakila 10:14:32>show index from tab_no_index \G
*************************** 1. row ***************************
Table: tab_no_index
Non_unique: 1
Key_name: id
Seq_in_index: 1
Column_name: id
Collation: A
Cardinality: 5
Sub_part: NULL
Packed: NULL
Null: YES
Index_type: BTREE
Comment:
Index_comment:
1 row in set (0.00 sec)
set autocommit=0;
--在索引上使用了鎖,具體使用哪個索引,需要看執行計劃
root@sakila 10:11:17>select * from tab_no_index where id=1 for update;
+------+------+
| id | name |
+------+------+
| 1 | 1 |
+------+------+
1 row in set (0.00 sec)
--即使同一個會話,插入一條相同key的記錄也會鎖住
root@sakila 10:11:32>insert into tab_no_index values(1,'4');
ERROR 1205 (HY000): Lock wait timeout exceeded; try restarting transaction
root@sakila 10:12:45>
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/674865/viewspace-2135284/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- MySQL鎖:03.InnoDB行鎖MySql
- MySQL鎖:InnoDB行鎖需要避免的坑MySql
- Mysql研磨之InnoDB行鎖模式MySql模式
- Mysql innodb引擎(二)鎖MySql
- MySQL InnoDB 中的鎖機制MySql
- MySQL/InnoDB中,樂觀鎖、悲觀鎖、共享鎖、排它鎖、行鎖、表鎖、死鎖概念的理解MySql
- 詳解 MySql InnoDB 中的三種行鎖(記錄鎖、間隙鎖與臨鍵鎖)MySql
- MySQL InnoDB設定死鎖檢測的方法MySql
- 詳解 MySql InnoDB 中意向鎖的作用MySql
- MySQL:Innodb 一個死鎖案例MySql
- MySQL innodb 的間隙鎖定(next-key locking)MySql
- 在Linux中,mysql的innodb如何定位鎖問題?LinuxMySql
- mysql innodb lock鎖之record lock之一MySql
- Mysql技術內幕之InnoDB鎖探究MySql
- InnoDB常用鎖總結(行鎖、間隙鎖、臨鍵鎖、表鎖)
- MySQL底層概述—10.InnoDB鎖機制MySql
- MySQL -- 行鎖MySql
- MySQL 行鎖MySql
- MySQL 配置InnoDB的併發執行緒MySql執行緒
- 資料庫系列:MySQL InnoDB鎖機制介紹資料庫MySql
- MySQL優化篇系列文章(二)——MyISAM表鎖與InnoDB鎖問題MySql優化
- MySQL innodb引擎的事務執行過程MySql
- MySQL探祕(五):InnoDB鎖的型別和狀態查詢MySql型別
- MySQL資料庫InnoDB儲存引擎中的鎖機制GVMySql資料庫儲存引擎
- MySQL InnoDB中的事務隔離級別和鎖的關係MySql
- Innodb中有哪些鎖?
- MySQL鎖(四)行鎖的加鎖規則和案例MySql
- 全面瞭解mysql鎖機制(InnoDB)與問題排查MySql
- InnoDB意向鎖和插入意向鎖
- MySQL:Innodb purge執行緒略解MySql執行緒
- 三分鐘入門 InnoDB 儲存引擎中的表鎖和行鎖儲存引擎
- MySQL全域性鎖、表鎖以及行鎖MySql
- 淺談Innodb的鎖實現
- 【問答分享第一彈】MySQL鎖總結:MySQL行鎖、表鎖、排他鎖、共享鎖的特點MySql
- MySQL索引失效行鎖變表鎖MySql索引
- mysql行鎖和死鎖檢測MySql
- 論 MySql InnoDB 如何通過插入意向鎖控制併發插入MySql
- Innodb 鎖子系統
- MySQL:Innodb page clean 執行緒 (二) 解析MySql執行緒