数据库的死锁与预防

死锁产生的条件:

1,资源不共享(自能由一个进程或者线程使用)

2,请求且保持(已经锁定的资源自己保持着不释放)

3,不剥夺(自己申请到的资源不能被别人剥夺)

4,循环等待

预防死锁=避免满足死锁条件

1,尽量避免并发事务涉及到数据的修改

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

3,预先规定一个封装顺序,所有的事务都必须按这个顺序对数据执行封锁。如不同的过程在事务处理内部对对象的更新执行应该尽量保持一致。

4,事务的执行时间不宜太长,在业务允许的情况下,可以将其划分为多个小事务(多表查询改为多次单表查询)

5,一个修改上百条数据的update语句,我们可以换成每一条语句修改10数据,甚至是每一条语句修改一条数据。

6,把需要经常修改的数据库和查询数据库分开

7,数据存储空间离散法

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值