mysql里面的伪事务-----MyISAM存储引擎的锁机制

在Mysql数据库里面存在了好几个存储引擎,其中有的存储引擎是支持事务管理,例如InnoDB,但是有的存储引擎是不支持事务管理,例如MyISAM存储引擎。如果用户在创建表的时候选择的存储引擎是MyISAM,用户可以选择应用表锁来代替事务,这种使用表锁来代替事务的事件被称为伪事务。表锁分为读锁(read)和写锁(write)。

首先先给一张表添加一个读锁lock table 表名 read,截图如下:

此时user表的read锁已经加好了,现在我们往user表里面插入一条记录如下,会报错,截图如下:

但是如果我把read锁释放掉就可以了,截图如下:

于是我们可以得出结论,给表添加read锁,就不能对表进行添加,删除,修改等操作,但是可以对表进行查询。

其次给一张表添加一个写锁lock table 表名 write,截图如下:

此时在该用户下查询是本可以的,但是你重新打开一个窗口就不行了,一直在等待状态,截图如下:

一旦在第一个窗口里面把这个write锁释放掉以后,第二个窗口的查询结果立马就出来了,截图如下:


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值