数据库的死锁相关知识

死锁的定义

死锁是指两个或两个以上的进程在执行的过程中,由于竞态资源或由于彼此通信而造成的一种阻塞现象。若无外力作用,它们都将无法推进下去,此时称系统处于死锁状态,这些在互相等待的进程称为死锁进程。

数据库发生死锁的条件

1.资源不能共享。需要只能由一个进程或线程使用。

2.请求且保持。已经锁定的资源自己保持着不释放。

3.不剥夺。 自己申请的资源不能被别人剥夺。

4.循环等待。

想防止死锁只需将上述条件破坏:

(1)尽量避免并发的执行涉及到修改数据的语句。

(2)要求每个事务一次就将所有要用的加锁,否则不予执行。

(3)每个事务执行的时间不能太长,在业务允许的情况下,可以考虑将事务分割成几个较小的事务来执行。

(4)数据存储空间离散法。采用各种手段将逻辑上在一个表中的数据分散到若干个离散的空间上,以便改善对表的访问。

(5)将经常更新的数据库与查询数据库分割开来。

时间: 2024-11-03 20:49:20

数据库的死锁相关知识的相关文章

数据库原理相关知识

数据库原理相关知识 made by @杨领well([email protected]) 一.基础知识 1. 简述数据库系统的特点. 数据结构化 : 这是数据库系统与文件系统的本质区别. 数据的共享性高.冗余度低且易扩充 : 数据共享可以大大减少数据冗余, 节约存储空间.数据共享还能够避免数据之间的不相容性和不一致性. 数据的独立性高 : 数据独立性包括物理独立性和逻辑独立性. 数据由数据库管理系统统一管理和控制 : 数据的安全性保护(保护数据以防止不合法使用造成的数据泄密和破坏).数据的完整性

程序员面试笔试宝典学习记录(三)(数据库相关知识)

关系数据库系统与文件数据库系统的区别如下: (a)关系数据库系统的主要特征是数据的结构化,而文件数据库系统是数据的非结构化. (b)关系数据库系统中,用户看到的逻辑结构是二维表,而文件数据库系统中,基本元素是文件. (c)文件数据库系统可以实现多媒体文件管理,支持C/S工作模式. acid,指数据库事务正确执行的四个基本要素的缩写.包含:原子性(atomicity),一致性(consistency),隔离性(isolation),持久性(durability). 数据查询:select sele

数据库存储过程相关知识

(一) SET ANSI_NULLS {ON | OFF} 指定在对空值使用等于 (=) 和不等于 (<>) 比较运算符时,这些运算符的 SQL-92 遵从行为. 注释 SQL-92 标准要求对空值的等于 (=) 或不等于 (<>) 比较取值为 FALSE.当 SET ANSI_NULLS 为 ON 时,即使column_name 中存在空值,使用 WHERE column_name = NULL 的 SELECT 语句仍返回零行.即使column_name 中存在非空值,使用 W

深入浅出安卓学习相关知识,如何从零学好移动开发

原文发表自我的个人主页,欢迎大家访问 http://purplesword.info/mobile-develop 由于近几年来互联网的飞速发展,安卓和iOS平台的大量普及推广,移动开发在当前是非常热门的一个方向. 有不少同学问我如何学习安卓,要学些什么,难不难学.之前一直没有想好应该怎么回答这个问题,只是简单的说安卓自身门槛不高,并不难学.因为我觉得准确回答一个类似这样的问题往往需要灵感.现在根据我的学习体验,做个大概的总结. 1.我为什么学安卓 我从刚开始接触安卓开发到现在也有两三年的时间了

(整理)ubuntu 的 相关知识(来自 鸟哥的私房菜)

1. Linux 文件权限概念 $ ls 察看文件的指令 $ ls -al 出所有的文件详细的权限与属性 (包含隐藏档,就是文件名第一个字符为『 . 』的文件) 在你第一次以root身份登入Linux时, 如果你输入上述指令后,应该有上列的几个东西,先解释一下上面七个字段个别的意思: 图2.1.1.文件属性的示意图 第一栏代表这个文件的类型与权限(permission): 这个地方最需要注意了!仔细看的话,你应该可以发现这一栏其实共有十个字符:(图2.1.1及图2.1.2内的权限并无关系) 图2

Mysql 死锁相关操作

该随笔随时记录日常工作中遇到的关于mysql的死锁相关问题 1)查看mysql当前的处理线程(connection) mysql> show processlist; 2)杀掉对应的connection mysql> kill connection_id;    例如 kill 3(杀掉链接3) 4)查看数据库中的锁状态 mysql自带的数据库INFORMATION_SCHEMA 记录了数据库相关的信息.包括锁信息等:我们见到的了解一下. mysql> use information_s

OSPF相关知识与实例配置

OSPF相关知识与实例配置[基本知识及多区域配置] OSPF(开放式最短路径优先协议)是一个基于链路状态的IGP,相比于RIP有无环路:收敛快:扩展性好等优点,也是现在用的最多的:所以这次实验就针对于OSPF(HCNA)内容进行一个探究: 在说ospf配置前:我们先来了解下ospf LSA的类型: type1 LSA:每个ospf路由器都会产生type1 LSA:描述了对应设备接口的物理接口所连接的链路或接口,并且表明了个链路的状态.开销等参数:(只在区域内泛洪) Type2 LSA:网络LSA

数据挖掘相关知识

因为最近在复习数据挖掘...故百度了解数据挖掘的相关知识... 什么是数据挖掘?? 数据挖掘(英语:Data mining),又译为资料探勘.数据采矿.它是数据库知识发现(英语:Knowledge-Discovery in Databases,简称:KDD)中的一个步骤.数据挖掘一般是指从大量的数据中通过算法搜索隐藏于其中信息的过程.数据挖掘通常与计算机科学有关,并通过统计.在线分析处理.情报检索.机器学习.专家系统(依靠过去的经验法则)和模式识别等诸多方法来实现上述目标. 为什么要进行数据挖掘

Hibernate相关知识

1.Hibernate对象的三种状态 Transient(临时状态) 对象刚new出来,还没设置id,还没有被保存到数据库中,在session的缓存中也不存在该对象 Persistent(持久化状态) 对象已经被保存到数据库中,保存在session缓存中,此状态是有id的 Detached(游离状态) 数据库中有,但是session中不存在该对象,此状态也是有id的 2.Hibernate之SessionFactory Session session = sf.openSession(); ..