1.表级锁
1.什么是表级锁?
1.他是mysql中颗粒度最大的锁,实现逻辑简单,加锁、放锁速度快;
2.它会锁定整个表,所以避免了死锁问题
3.它的粒度大,所以并发性能最低。
2.表级锁有哪些?
- 1.表共享读锁
不会阻塞其他用户对同一表的读请求,但会阻塞对同一表的写请求; - 2.表独占写锁
会阻塞其他用户对同一表的读和写操作;
3.怎么加表锁?——自动加,不用人工干预
- 1.加读锁
在执行select语句之前,自动加读锁; - 2.加写锁
在执行update、delete、insert时,自动加写锁。
4.表级锁优化建议
- 尽可能让锁定的时间变短;
- 然后就是让可能并发进行的操作尽可能的并发;
2.行级锁
1.什么是行级锁?
行级锁是通过给索引上的索引项加锁来实现的,不是对记录加的锁,只有通过索引条件检索数据,InnoDB才使用行级锁,否则InnoDB使用表锁。
- 1.它的颗粒度很小,所以资源