IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> 数据库死锁了怎么办 -> 正文阅读

[大数据]数据库死锁了怎么办

?

??今天看书的时候,书中写到了到了数据库解决死锁的几个方法,特此做个笔记

?

??死锁是个啥?

?
??一句话概括就是,有两个人叫甲和乙,又两个资源叫a和b,甲拿了a然后需要b,乙在甲拿了a的时候拿了b然后要a,此时甲和乙都拿着对方需要的资源,咋办呢。没办法,你瞪着我,我瞪着你,这就是死锁。
?
?

??数据库死锁是个啥?

?
??先看一段sql:

START TRANSACTION;
UPDATE A SET a=1 WHERE ID=2;
UPDATE A SET a=2 WHERE ID=2;
COMMIT;

START TRANSACTION;
UPDATE A SET a=2 WHERE ID=1;
UPDATE A SET a=1 WHERE ID=1;
COMMIT;

?
??上面这两个事务如果都执行了第一条update语句,更新了一行数据,同时也锁定了该行数据,接着两个事务都去尝试执行第二条update语句,这时会发现该行被对方锁定了,然后两个事务都等待对方释放锁,同时又持有对方需要的锁,这时死锁就形成了。如果没有外部因素介入,它们理论上能锁到是世界末日。
?

??那数据库咋解决这种冲突呢?

?
??为了解决死锁的问题,数据库引入了死锁检测和死锁超时机制。越复杂的系统(比如innodb存储引擎),越能快速的检测到死锁的循环依赖,并立即报错。
?
??还有一种方式,就是当查询的时间达到超时的设定后放弃锁请求,这种方式提高了数据库的可用性。
?
??目前国内用的比较多的MySQL的innodb存储引擎目前的处理死锁的方法是,将持有最少行级排他锁的事务进行回滚。
?

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2022-03-06 13:08:12  更:2022-03-06 13:12:29 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 8:40:54-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码