美文网首页
1.读写锁

1.读写锁

作者: 资深菜鸡程序员 | 来源:发表于2021-06-01 17:20 被阅读0次

    一.表读锁

    给表加读锁同一个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; --可以访问

    相关文章

      网友评论

          本文标题:1.读写锁

          本文链接:https://www.haomeiwen.com/subject/cwlptltx.html