直接拿下MySQL--锁篇(进阶版)

锁的概述

锁的分类:全局锁,表级锁,行级锁

全局锁:

 在数据库上了全局锁后,不允许写但允许读:

 加锁:

flush tables with read lock;

备份(在Windows下使用MySQLdump工具):

mysqldump -h192.168.136.132(Linux地址) -uroot(用户) -p1234(密码) db01(数据库) > D:/db01.sql(文件保存位置)

解锁:

unlock tables;

 所以在innoDB引擎中,我们可以在备份加上参数--single-transaction来直接备份:

mysqldump --single-transaction -h192.168.136.132(Linux地址) -uroot(用户) -p1234(密码) db01(数据库) > D:/db01.sql(文件保存位置)

表级锁:

 表级锁中的表锁:

共享读锁:不阻塞进程的读,但是阻塞写

独占写锁:对自己进程无限制,但是阻塞其他进程的读和写

 表级锁中的元数据锁(MDL):

 元数据=表结构;其实就是你在开启事务或者操作数据库的时候不可以同时修改表的结构

  表级锁中的意向锁:

行级锁:

 行级锁中的行锁: 

直接说人话:两个事务在对同一行数据可以同时读读,不可以同时读改,改改; 读代表S(共享锁),改代表X(排他锁)

但是有这种情况:如果没有使用索引进行检索数据,行锁会直接升级为表锁,并发性能降低;此时涉及到update的优化,可以转到:直接拿下MySql--SQL优化篇

 

 行级锁中的间隙锁和临键锁:

 

总结

  • 5
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值