in 语句怎么锁
1、id是主键,加锁,看mysql是先锁住9还是2或是9,2,1一起锁住,
有些文章说,mysql会自动排序,现锁住1;2和9不被锁住
2、打开另一个窗口,锁等待
看来Mysql没有排序
3、看1和2是否被锁住,锁等待
结论:mysql in的时候全部加锁。
死锁列子
锁等待
避免死锁
1、避免死锁的方法
1、如果不同程序并发存取多个表,或者涉及多行记录时,尽量约定以相同顺序访问表,可以大大降低死锁的机会
2、业务中尽量采用小事务,避免使用大事务,要及时提交或者回滚事务,可以减少死锁产生的概率。
3、在同一个事务中,尽可能做到一次锁定所需要的所有资源,减少死锁产生概率。
4、对非常容易产生死锁的业务部分,可以尝试使用升级锁粒度,通过表锁定来减少死锁产生的概率。