如何避免mysql死锁

1.经常提交你的事务,小事务更少的倾向于冲突


2.以固定的顺序访问你的表和行,这样事务就会形成良好的查询并且没有思索


3.讲精心选定的索引添加到你的表中,这样你的查询就只需要扫描更少的索引记录,并且因此可以设置更好的锁定


4.不要把无关紧要的操作放到事务里面


5.尽量按照主键索引去查找记录,范围查找增加了锁冲突的可能性,也不要利用数据库去做一些额外的计算操作,比如

select  .... where.... order by RAND(); 这样的语句用不到索引,因此将导致整个表中的数据都被锁住


6.优化SQL和表设计,减少同时占用太多资源的情况,减少连接的表,将复杂的sql分解为多个简单的sql


7.在并发比较高的系统中,不要显示的加锁,特别在事务里显示的加锁,如 select 。。。 for update 语句

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值