为什么表锁不会死锁行锁会思索
时间: 2023-10-09 16:15:44 浏览: 109
银行家问题--避免死锁
表锁和行锁在死锁方面的表现不同,主要是因为它们的锁粒度不同。表锁是针对整张表进行加锁,而行锁是针对表中的行进行加锁。因此,如果多个事务需要对同一张表进行操作,如果使用表锁,那么只有当多个事务同时请求锁时才会出现死锁;而如果使用行锁,因为行锁只针对表中的某些行进行加锁,如果多个事务请求不同的行,则可能会出现死锁。
具体来说,在使用行锁的情况下,如果多个事务分别请求了其他事务已经持有的行锁(即相互等待对方释放锁),那么就会出现死锁。而在使用表锁的情况下,多个事务只有在同时请求锁时才会出现死锁,因为表锁会锁住整张表,而不是表中的某些行。
因此,在并发环境下,需要根据具体的业务场景和系统特点来选择使用表锁还是行锁,并且需要注意锁的粒度和锁的请求顺序,以避免死锁的发生。
阅读全文