Mysql排它锁演示
Mysql锁机制分为表锁和行锁
Mysql锁机制对比:
排他锁又称为写锁,简称X锁,顾名思义,排他锁就是不能与其他所并存,如一个事务获取了一个数据行的排他锁,其他事务就不能再获取该行的其他锁,包括共享锁和排他锁,但是获取排他锁的事务是可以对数据就行读取和修改。
以下是基于mysql存储引擎InnoDB演示,因为InnoDB支持表锁和行锁,并且InnoDB支持事务
先建一张表:
CREATE TABLE `t_user` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`username` varchar(255) DEFAULT NULL,
`password` varchar(255) DEFAULT NULL,
`roleId` int(11) DEFAULT NULL,
`create_time` datetime DEFAULT NULL,
`gender` int(11) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=11 DEFAULT CHARSET=utf8;
插入数据
INSERT INTO `t_user` VALUES ('1', '4444', '123456', '1', '2018-08-07 15:50:14', '1');
INSERT INTO `t_user` VALUES ('2', 'zhsang', '123456', '1', '2018-08-07 15:50:14', '1');
INSERT INTO `t_user` VALUES ('3', wangwu, '123456', '1', '2018-08-07 15:50:14', '1');
INSERT INTO `t_user` VALUES ('4', lisi, '123456', '1', '2018-08-07 15:50:14', '1');
INSERT INTO `t_user` VALUES ('5', 'zhsang', '123456', '1', '2018-08-07 15:50:14', '1');
INSERT INTO `t_user` VALUES ('6', 'zhsang', '123456', '1', '2018-08-07 15:50:14', '1');
INSERT INTO `t_user` VALUES ('7', 'zhsang', '123456', '1', '2018-08-07 15:50:14', '1');
INSERT INTO `t_user` VALUES ('8', 'zhsang', '123456', '1', '2018-08-07 15:50:14', '1');
INSERT INTO `t_user` VALUES ('9', 'zhsang', '123456', '1', '2018-08-07 15:50:14', '1');
INSERT INTO `t_user` VALUES ('10', 'zhsang', '123456', '1', '2018-08-07 15:50:14', '1');
演示排它锁
行锁
行锁---因为是 ENGINE=InnoDB,InnoDB支持表锁和行锁
以下三个窗口分别表示A端、B端、C端
A端先把这一行锁住;id=1
B端id=1等待锁
C端Id=2不需要等待所,再次证明此为行锁
A端执行COMMIT后
B端另外一端id=1就获取到锁了
表锁:
A端上锁username='4444'
B端另外一端username='4444'等待获取锁
C端另外一端id=2 也在等待锁
A端COMMIT后
B端获取到锁
C端获取到锁
- MySQL学习记录(子查询+演示分析)八 DML
- MYSQL演示关系型数据库的隔离级别
- mysql基本语法-------------去重distinct和限制输出行数limit代码演示
- 前端(HTML)+后端(Django)+数据库(MySQL):用户注册及登录演示
- Windows平台下安装和配置mysql(图形演示)
- 【MySQL】MySQL Show命令演示
- mysql游标实例演示
- MySQL学习记录(索引+演示分析)九 DML
- mysql的四种隔离级别操作演示
- mysql主从复制配置过程及演示
- MySQL基准测试及演示
- Web分页实现及实例演示(二)——MySql limit
- MySQL union 语法代码演示
- 数据库操作:java连接MYSQL实例代码演示
- MySQL学习记录(视图+演示分析)十 DML
- MYSQL演示关系型数据库的隔离级别
- Mysql 常用命令、操作演示
- 数据库操作:java连接MYSQL实例代码演示
- mysql下载与安装 视频演示
- mysql 多表联合查询 简单演示