1.读写锁

一.表读锁

给表加读锁同一个session可以读加锁表,但不能读其他表,也不可以写加锁表和其他表。

                  不同锁session可以读取加锁表和其他表,写其他表可以成功但是写加锁表会阻塞,等待锁释放才可以操作

1、session1: lock table mylock read; -- 给mylock表加读锁

2、session1: select * from mylock; -- 可以查询

3、session1:select * from tdep; --不能访问非锁定表

4、session2   :select * from mylock; -- 可以查询 没有锁

5、session2:update mylock set name='x' where id=2; -- 修改阻塞,自动加行写锁

6、session1:unlock tables; -- 释放表锁

7、session2:Rows matched: 1 Changed: 1 Warnings: 0 -- 修改执行完成

8、session1:select * from tdep; --可以访问

二.表写锁

给表加写锁同一个session可以读加锁表的数据,不能读其他表,可以写加锁表但不能写其他表。

                  不同session读加锁表会阻塞,可以读其他表,写加锁表会阻塞,可以写其他表。

1、session1: lock table mylock write; -- 给mylock表加写锁

2、session1: select * from mylock; -- 可以查询

3、session1:select * from tdep; --不能访问非锁定表

4、session1:update mylock set name='y' where id=2; --可以执行

5、session2:select * from mylock; -- 查询阻塞

6、session1:unlock tables; -- 释放表锁

7、session2:4 rows in set (22.57 sec) -- 查询执行完成

8、session1:select * from tdep; --可以访问

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 数据库锁分类 按性能分 乐观锁(比如使用version字段比对,无需等待)、悲观锁(需要等待其他事务) 乐观锁,如...
    锕123阅读 4,554评论 0 1
  • 1、MySQL锁的基本介绍 ​ 锁是计算机协调多个进程或线程并发访问某一资源的机制。在数据库中,除传统...
    zzj0990阅读 3,430评论 1 13
  • 1、概述 锁的定义 1.锁是计算机协调多个进程或线程并发访问某一资源的机制。2.在数据库中,除传统的计算资源(如C...
    L_又不是不能用阅读 1,300评论 0 0
  • 目录:1.锁的定义与分类(表、行、页)2.锁相关的语句(查看锁)3.mysql事务4.乐观锁和悲观锁5.数据库死锁...
    lbcBoy阅读 9,097评论 1 6
  • 我是黑夜里大雨纷飞的人啊 1 “又到一年六月,有人笑有人哭,有人欢乐有人忧愁,有人惊喜有人失落,有的觉得收获满满有...
    陌忘宇阅读 12,736评论 28 53