并发,锁
文章目录
-
乐观锁
-
需要对表的设计增加额外的字段,增加了数据库的冗余,另外,当应用并发量高的时候,version值在频繁变化,则会导致大量请求失败,影响系统的可用性。
-
我们通过上述sql语句还可以看到,数据库锁都是作用于同一行数据记录上,这就导致一个明显的缺点,在一些特殊场景,如大促、秒杀等活动开展的时候,大量的请求同时请求同一条记录的行锁,会对数据库产生很大的写压力。
-
-
悲观锁
- 使用方法: select * from table where id = 1 for update;
- 在高并发环境下,容易造成大量请求阻塞,影响系统可用性
- 悲观锁使用不当还可能产生死锁的情况
- 一个事务里面不好获取多个锁,不然会有哲学家就餐问题
外键的优点
- 保证数据的完整性和一致性;
- 级联操作方便;
- 将数据完整性判断托付给了数据库完成,减少了程序的代码量;
文章作者 LYR
上次更新 2021-08-17