接上一篇,演示环境一样。
我们看行锁的情况。
首先:发出sql :
set autocommit=0;
select * from role where id=1 for update;
由于innodb引擎支持行锁,因为id是主键(主键一定是索引),此时只会锁定 id=1的记录。
然后看mysql锁定记录,
发sql:SHOW PROCESSLIST;
+----+------+-----------------+---------+---------+------+-------+--------------
----+
| Id | User | Host | db | Command | Time | State | Info
|
+----+------+-----------------+---------+---------+------+-------+--------------
----+
| 6 | root | localhost:50898 | mybatis | Sleep | 8 | NULL | NULL
|
| 19 | root | localhost:51403 | mybatis | Query | 0 | NULL | SHOW PROCESSL
IST |
+----+------+-----------------+---------+---------+------+-------+--------------
----+
可以看到有一条锁表记录。
然后我们先修改其他行的记录,比如id=3记录。
发sql: update role set seat=99 where id =3;
mysql> update role set seat=99 where id =3;
Query OK, 1 row affected (0.03 sec)
Rows matched: 1 Changed: 1 Warnings: 0
可以看到毫无影响。
如果写操作涉及到本条记录呢?
同样的,发出sql:update role set seat=90 where seat = 98;
此时会影响到 id=1,id=22条记录,而id=1已经被我们锁定了。
果然返回:
ERROR 1205 (HY000): Lock wait timeout exceeded; try restarting transaction
结论:
mysql innodb for update锁表如果where条件的列是索引,那么执行的是行锁,只锁受影响的记录,其他记录照样可以执行正常的读写。
最后同样的 执行 kill 6 ,人工删除锁记录。那边被影响的记录就可以修改了。
分享到:
相关推荐
mysql怎么减少行锁对性能的影响
主要介绍了MySQL 行锁和表锁的含义及区别详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
主要给大家介绍了关于当Mysql行锁遇到复合主键与多列索引的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用Mysql具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
自己整合的分数不能再低了, 如果对你有用记得给个好评 十分感谢! 最好使用谷歌浏览器,当然其他浏览器也可以 建好数据库之后直接输入...springmvc+mybatis+mysql框架整合保证能用对本例子有什么问题直接回复我就行
自己整合的springmvc+mybatis+mysql 带测试例子保证能用 里面有数据库创建文件 直接输入localhost:8080 访问 喜欢的记得给好评哟!
MySQL官方演示数据库Sakila 使用指南
MySQL官方演示数据库Employees使用指南
MySQL官方演示数据库world 使用指南
mysql演示程序。实现了数据库的各种功能。对初学数据库的人来说很有用。
MySQL安装演示 很具体 一看就懂 。。。。。。
58.MySQL高级_行锁演示答疑补充.avi 57.MySQL高级_行锁案例讲解.avi 56.MySQL高级_行锁理论.avi 55.MySQL高级_读锁案例讲解2.avi 54.MySQL高级_读锁案例讲解.avi 53.MySQL高级_数据库锁理论概述.avi 52...
php的安装和mysql的注入演示,什么是mysql注入,怎么搭建php环境
这是我们专业授课老师整理发给我们复习的,里面全是打过的代码,讲解也很详细,非常棒,如果有不懂的可以加我wx macforyou1,会耐心解答的
尚硅谷_MySQL高级_行锁演示答疑补充 · 59.尚硅谷_MySQL高级_索引失效行锁变表锁 · 60.尚硅谷_MySQL高级_间隙锁危害 · 61.尚硅谷_MySQL高级_如何锁定一行 · 62.尚硅谷_MySQL高级_行锁总结 · 63.尚硅谷_...
19.MySQL高级锁InnoDB行锁基本演示.avi 20.MySQL高级锁InnoDB行锁行锁升级为表锁.avi 21.MySQL高级锁InnoDB行锁间隙锁危害.avi 22.MySQL高级锁InnoDB行锁争用情况查看.avi 23.MySQL高级锁InnoDB行锁总结.avi 24....
易语言Mysql数据库操作演示源码,Mysql数据库操作演示
参考 https://dev.mysql.com/doc/refman/8.0/en/innodb-locking.html MySQL各种锁0. 预备知识1. 行级锁1.1. 共享锁`Shared Locks` (`S`)1.2.... 行锁和表锁的冲突和兼容4 行锁的实现方式4.1 记录锁
mysql优化
主要通过案例演示了mysql的读写锁问题;帮助理解读写锁的概念、特征。主要通过案例演示了mysql的读写锁问题;帮助理解读写锁的概念、特征。主要通过案例演示了mysql的读写锁问题;帮助理解读写锁的概念、特征。主要...