Mysql 支持3中锁结构
表级锁,开销小,加锁快,不会出现死锁,锁定的粒度大,冲突概率高,并发度最低
行级锁,开销小,加锁慢,会出现死锁,锁定粒度小,冲突概率最低,并发度最高
页面锁,开销和加锁处于表锁和行锁之间...行级锁和表级锁本来就有许多不同之处,另外,事务的引入也带来了一些新问题。
InnoDB的行锁模式及加锁方法
InnoDB实现了以下两种类型的行锁。...需要说明的是,这个参数并不是只用来解决死锁问题,在并发访问比较高的情况下,如果大量事务因无法立即获取所需的锁而挂起,会占用大量计算机资源,造成严重性能问题,甚至拖垮数据库。...(2)在一定条件下,MyISAM允许查询和插入并发执行,我们可以利用这一点来解决应用中对同一表和插入的锁争用问题。...另外mysql还有个问题是select for update语句执行中所有扫描过的行都会被锁上,这一点很容易造成问题。因此如果在mysql中用悲观锁务必要确定走了索引,而不是全表扫描。