参考答案
1. MySQL的乐观锁
- 每次去获取数据的时候,都认为别人不会修改、不会上锁。但是,在提交修改时,会判断下在此期间别人有没有修改这个数据。
- MySQL 的乐观锁需要自己实现。一般在表里面添加一个 version 字段,每次修改成功值加 1。每次其他字段值的时候先对比,自己拥有的 version 和数据库现在的 version 是否一致,如果不一致,就可以返回失败,也可以进行重试。
2. MySQL的悲观锁
- 每次去获取数据时,都认为别人会修改、每次都会上锁,以阻止其他线程获取数据,直到这个锁释放。
- MySQL 的悲观锁,以 Innodb 存储引擎为例,将 MySQL 设置为非 autoCommit 模式。
以上,是MySQL面试题【说说MySQL的乐观锁和悲观锁】的参考答案。
输出,是最好的学习方法。
欢迎在评论区留下你的问题、笔记或知识点补充~
—end—