当前位置:网站首页>MySQL乐观锁
MySQL乐观锁
2022-07-25 15:43:00 【Leon_Jinhai_Sun】
乐观锁认为对同一数据的并发操作不会总发生,属于小概率事件,不用每次都对数据上锁,但是在更新的时候会判断一下在此期间别人有没有去更新这个数据,也就是 不采用数据库自身的锁机制,而是通过 程序来实现 。在程序上,我们可以采用 版本号机制 或者 CAS 机制 实现。 乐观锁适用于多读的应用类型, 这样可以提高吞吐量 。在 Java 中 java.util.concurrent.atomic 包下的原子变量类就是使用了乐观锁的一种实现方式:CAS 实现的。
1. 乐观锁的版本号机制 : 在表中设计一个 版本字段 version ,第一次读的时候,会获取 version 字段的取值。然后对数据进行更新或删除操作时,会执行 UPDATE ... SET version=version+1 WHERE version=version 。此时如果已经有事务对这条数据进行了更改,修改就不会成功。
2. 乐观锁的时间戳机制 : 时间戳和版本号机制一样,也是在更新提交的时候,将当前数据的时间戳和更新之前取得的时间戳进行比较,如果两者一致则更新成功,否则就是版本冲突。你能看到乐观锁就是程序员自己控制数据并发操作的权限,基本是通过给数据行增加一个戳(版本号或者时间戳),从而证明当前拿到的数据是否最新。
边栏推荐
- 报表工具的二次革命
- MATLAB optimization tool manopt installation
- 2019 Shaanxi Provincial race K-variant Dijstra
- LeetCode - 707 设计链表 (设计)
- ZOJ - 4114 flipping game DP, reasonable state representation
- Activity review | July 6 Anyuan AI X machine heart series lecture No. 2 | MIT professor Max tegmark shares "symbiotic evolution of human and AI"
- Gary Marcus: 学习语言比你想象的更难
- How to realize page inclusion
- P4552 differential
- LeetCode - 379 电话目录管理系统(设计)
猜你喜欢

CVPR 2022 | in depth study of batch normalized estimation offset in network

Matlab simulation of BPSK modulation system (1)

Understand "average load"

LeetCode - 380 O(1) 时间插入、删除和获取随机元素 (设计 哈希表+数组)

【服务器数据恢复】HP EVA服务器存储意外断电导致RAID信息丢失的数据恢复案例

十字链表的存储结构

基于Caffe ResNet-50网络实现图片分类(仅推理)的实验复现

MySQL - user and permission control

Leetcode - 359 log rate limiter (Design)

Pytoch learning notes - Teacher Liu Er RNN advanced chapter - code comments and results
随机推荐
Reasons for data format conversion when matlab reads the displayed image
Pytoch learning notes -- Summary of common functions 2
How matlab saves all the data after running
JVM—类加载器和双亲委派模型
LeetCode - 641 设计循环双端队列(设计)*
Beyond compare 4 realizes class file comparison [latest]
The difference between mouseover and mouseenter
LeetCode - 225 用队列实现栈
Solve the vender-base.66c6fc1c0b393478adf7.js:6 typeerror: cannot read property 'validate' of undefined problem
Leetcode - 677 key value mapping (Design)*
Dpdk packet receiving and sending problem case: non packet receiving problem location triggered by mismatched packet sending and receiving function
CVPR 2022 | 网络中批处理归一化估计偏移的深入研究
JWT diagram
LeetCode - 380 O(1) 时间插入、删除和获取随机元素 (设计 哈希表+数组)
Wavelet transform --dwt2 and wavedec2
通用测试用例写作规范
R语言使用gt包和gtExtras包漂亮地显示表格数据:gt_bar_plot函数和gt_plt_bar_pct函数可视化百分比条形图、原始数据的百分比条形、缩放后的数据的百分比条形、指定数据对齐宽度
Qtime definition (manual waste utilization is simple and beautiful)
Pytoch learning notes -- Summary of common functions of pytoch 1
推荐收藏,这或许是最全的类别型特征的编码方法总结