数据库阻塞和死锁的区别

数据库阻塞和死锁的区别,第1张

数据库阻塞的现象:第一个连接占有资源没有释放,而第二个连接需要获取这个资源。如果第一个连接没有提交或者回滚,

第二个连接会一直等待下去,直到第一个连接释放该资源为止。对于阻塞,数据库无法处理,所以对数据库 *** 作要及时地提交或

者回滚。

数据库死锁的现象:第一个连接占有资源没有释放,准备获取第二个连接所占用的资源,而第二个连接占有资源没有释放,

准备获取第一个连接所占用的资源。这种互相占有对方需要获取的资源的现象叫做死锁。对于死锁,数据库处理方法:牺牲一个

连接,保证另外一个连接成功执行

因数据库存储在硬盤内,硬盤的读写速度是远远落後于CPU和内存的。所以较容易形成瓶颈导致IO阻塞。有些公司会通过升级硬件、上存储(SAN)来缓解,不过涉及不小的投入。

其实这类问题,很大比重会是因系统架构及编程不规范,导致程序执行效能低下而引发的问题。比如程序员如果查询数据,直接用select * 这样会取出数据表内所有字段的数据,最好程序员形成习惯,select *** 作时只取需要的字段,这让会减少访问的数据量。

此外,还有很多相关的原因和处理方式,这个多去搜索下,就能有所收获。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/sjk/6802553.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-28
下一篇 2023-03-28

发表评论

登录后才能评论

评论列表(0条)

保存