Mysql 支持3中锁结构
表级锁,开销小,加锁快,不会出现死锁,锁定的粒度大,冲突概率高,并发度最低
行级锁,开销小,加锁慢,会出现死锁,锁定粒度小,冲突概率最低,并发度最高
页面锁,开销和加锁处于表锁和行锁之间...此时,只有一个线程能插入成功,另一个线程会出现锁等待,当第1个线程提交后,第2个线程会因主键重出错,但虽然这个线程出错了,却会获得一个排他锁!这时如果有第3个线程又来申请排他锁,也会出现死锁。...对于一些特定的事务,可以使用表锁来提高处理速度或减少死锁的可能
Mysql中的锁
MySql乐观锁悲观锁
悲观锁
悲观锁的特点是先获取锁,再进行业务操作,即“悲观”的认为获取锁是非常有可能失败的,因此要先确保获取锁成功再进行业务操作...,mysql就没有no wait这个选项。...另外mysql还有个问题是select for update语句执行中所有扫描过的行都会被锁上,这一点很容易造成问题。因此如果在mysql中用悲观锁务必要确定走了索引,而不是全表扫描。