栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

MySQL锁--01---读锁、写锁、表锁及案例

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

MySQL锁--01---读锁、写锁、表锁及案例

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录
  • 锁的分类
    • 读锁、(共享锁)、 S锁
        • 针对同一份数据,多个读操作可以同时进行而不会互相影响
    • 写锁 、(排它锁) 、X锁
        • 当前写操作没有完成之前,它会阻断其他读锁和写锁
  • 表锁
    • 表级锁分析--建表SQL
    • 手动增加表锁
        • lock table 表名字1 read(write),表名字2 read(write),其它;
    • 查看表上加过的锁
        • show open tables;
    • 释放表锁
        • unlock tables;
  • 加读锁案例
        • ==lock table mylock read==
  • 加写锁案例
        • ==lock table mylock write==
  • 总结
    • 表级锁的2种形式
    • MALSAM引擎
        • MALSAM引擎在执行查询语句前(**select**),-----会自动给涉及的所有表加**读锁**
        • 在执行**增删改**操作之前,-------会自动给涉及的表加**写锁**
    • 小结:
      • ==读锁会阻塞写,但是不会堵塞读。而写锁则会把读和写都堵塞==


锁的分类

读锁、(共享锁)、 S锁
针对同一份数据,多个读操作可以同时进行而不会互相影响
写锁 、(排它锁) 、X锁
当前写操作没有完成之前,它会阻断其他读锁和写锁
表锁

表级锁分析–建表SQL
create table mylock(
 id int not null primary key auto_increment,
 name varchar(20)
)engine myisam;


insert into mylock(name) values('a');
insert into mylock(name) values('b');
insert into mylock(name) values('c');
insert into mylock(name) values('d');
insert into mylock(name) values('e');


select * from mylock;
手动增加表锁
lock table 表名字1 read(write),表名字2 read(write),其它;
查看表上加过的锁
show open tables;

释放表锁
unlock tables;
加读锁案例
lock table mylock read




加写锁案例
lock table mylock write



总结 表级锁的2种形式

MALSAM引擎
MALSAM引擎在执行查询语句前(select),-----会自动给涉及的所有表加读锁
在执行增删改操作之前,-------会自动给涉及的表加写锁
  • 对MyISAM表的读操作(加读锁),不会阻塞其他进程对同一表的读请求,但会阻塞对同一表的写请求。只有当读锁释放后,才会执行其它进程的写操作。
  • 对MyISAM表的写操作(加写锁),会阻塞其他进程对同一表的读和写操作,只有当写锁释放后,才会执行其它进程的读写操作。
小结:
读锁会阻塞写,但是不会堵塞读。而写锁则会把读和写都堵塞
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/667089.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号