[关闭]
@lyxiang 2019-07-08T11:42:56.000000Z 字数 1150 阅读 642

mysql的锁

未分类


mysql的锁

存储引擎和锁

表锁 行锁 页锁
MyISAM 支持 不支持
BDB 支持 支持
InnoDB 支持 支持

表锁

行锁

共享锁(S锁)

  1. //对数据对象A加上S锁
  2. start transaction;
  3. select * from yitiao_user_coupon where id = 90 LOCK IN SHARE MODE; //commit之后,就会释放S锁
  4. //在看一个事务,去更新数据对象A
  5. start transaction;
  6. update yitiao_user_coupon set coupon_id = 9 where id = 90; //等待锁
  7. //查看锁sql
  8. select * from information_schema.processlist where COMMAND = 'Query' and db = 'xxx';
  9. //杀死锁
  10. kill id

排他锁(X锁)

  1. //对数据对象A加上S锁
  2. start transaction;
  3. select * from yitiao_user_coupon where id = 90 for update; //commit之后,就会释放S锁
  4. //在看一个事务,去更新数据对象A
  5. start transaction;
  6. select * from yitiao_user_coupon where id = 90 LOCK IN SHARE MODE; //等待锁
  7. //查看锁sql
  8. select * from information_schema.processlist where COMMAND = 'Query' and db = 'xxx';
  9. //杀死锁
  10. kill id
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注