[Err] 1205 -Lock wait timeout exceeded; try restarting transaction
遇到了一个数据库死锁的问题.
mysql死锁解决方法:
1.重启mysql服务;
2. 查看当前运行的所有事务:
select * from information_schema.INNODB_TRX
使用kill {trx_mysql_thread_id} 命令将事务杀死
mysql死锁如何避免
1.尽量使用索引访问数据,避免没有 where 条件的操作,避免锁表
2.长事务尽量化为短事务
3.使用等值查询而不是范围查询查询数据,命中记录,避免间隙锁对并发的影响。
4.申请足够级别的锁,如果要操作数据,就申请排它锁;