U盘PE| w764位旗舰版下载 | U盘装win7系统 | U盘启动 |win7pe | win10下载 |加入收藏土豆PE官网U盘PE,U盘装win7系统,win7pe,U盘启动,U盘装系统,w764位旗舰版下载站!
当前位置:主页 > 帮助中心 > 常见问题解答 >

Mysql中常见的锁

来源:http://www.tudoupe.com时间:2022-07-01

锁定的目的在于确保共享资源在任何时候只由一个线程访问,从而避免导致共享数据故障的多个线程的问题。

分类:

按操作数据分类粒度:全球锁,表层锁,行锁

按数据操作类型分类:

  1. 悲观锁:读锁(共享锁)和写锁(单独锁)不支持同步;
  2. 最佳锁定:支持多个线程,事务不排队,数据可以修改,但数据需要一个版本号,必须与修改前和修改后的版本号相匹配,否则它会反转(修改和验证先),如在线文档
    优化锁定只在冲突的概率非常低和额外锁定的成本非常高的情况下考虑。

按锁的级别分类:

  1. 高级锁:读锁、写锁
  2. 低级锁: 相互厌恶锁, 自旋锁(所有悲观锁)

高级别锁可以由低级别锁实现,例如读写锁,可以通过选择相互排斥锁或者基于自旋锁实现。

1. 全局锁

执行后,整个数据库处于只读状态,DQL查询可用,DML和DDL不可用。

场景:

全球锁主要用于备份整个库的逻辑,这样数据或表结构不会更新,备份文件不会与预期不同。

缺点:规模太大无法导致企业停滞

上锁:flush tables with read lock;
解锁:unlock tables;

2. 表锁

支持InnoDb和MyISAM;低成本、快速锁定、大粒度、高冲突概率、低共发生率;

上锁:
锁定表表名读取;(读锁)
锁定表的表名;(写锁)

解锁:
unlock tables;

注:当该表被锁定时,不能在此会议上写(DML, DDL)

3. 行锁

InnoDb参数支持行级锁定,MyISAM不支持,开支大,锁定慢,粒子大小小,冲突概率低,共发生率高;

上锁:
select... where... lock in share mode;
select... where... for update;

3.逆锁和自旋锁

当一个线程被锁定时,另一个线程将失败,相互锁定和自旋锁定在处理失败锁定时不同:

  • 当相互排斥锁定失败时,线程将释放CPU给其他线程;
  • 自旋锁未能添加锁后,线程将忙于等待直到获得锁;

互斥锁:
相互锁是专用锁.例如,当线程A成功锁定时,此时,互锁已经排斥于线程A,只要线条A不释放手上的锁,B线锁定将失败,所以你释放CPU,然后把它交给其他线程,因为线程B已经释放了CPU,自然线程B锁定的代码将被封锁。
由于相互锁定和额外锁定的失败导致的锁定现象,它由操作系统内核实现。当加锁失败时,内核将线程置于睡眠状态,等到锁被释放后,核将在正确的时刻唤醒线程,当该线程成功获得锁定时,然后可以继续实施。所以,互斥锁加锁失败时,从用户到内核,让内核帮助我们改变线程,同时简化使用锁的难度,但性能开支也有一定成本。

自旋锁:
当使用自旋锁时,当多个线程竞争锁时,那些未能添加锁的线程将“匆忙等待”。
旋转锁是最简单的锁,不断旋转并使用CPU周期直到锁可用。
但是,如果锁定代码执行太长,旋转线程使用CPU资源需要很长时间。

比较:
自旋锁与使用水平的相互锁类似,但实现完全不同:在锁定失败时,相互锁用“线交换器”响应,自旋锁则用“繁忙等待”响应。

这两个方法都是处理锁的最基本方法,而更先进的锁将选择其中一个实现,例如读写锁可以选择相互厌恶锁实现或基于旋锁实现。

场景:
妥协锁定和锁定失败将取代线程并增加成本;如果锁定代码的执行时间短,你应该选择自旋锁定,而等待时间短,成本小;

参考:
https://blog.csdn.net/qq_34827674/article/details/108608566
https://xiaolincoding.com/mysql/lock/mysql_lock.html#%E5%85%A8%E5%B1%80%E9%94%81

Copyright © 2012-2014 Www.tudoupe.Com. 土豆启动 版权所有 意见建议:tdsky@tudoupe.com

土豆系统,土豆PE,win7系统下载,win7 64位旗舰版下载,u盘启动,u盘装系统,win10下载,win10正式版下载,win10 RTM正式版下载,win8下载,电脑蓝屏,IE11修复,网络受限,4K对齐,双系统,隐藏分区,系统安装不了,U盘装系统,笔记本装系统,台式机装系统,diskgenius运用,GHSOT装系统,U盘修复,U盘技巧,U盘速度,U盘不能格式化,U盘复制发生错误,U盘加密,U盘选购,开机黑屏,蓝屏,进不了系统,上不了网,打不开程序,点击无反应,系统设置,PE个性化,PE添加网络,PE维护系统

点击这里给我发消息