gpt4 book ai didi

mysql - 悲观与乐观并发控制实现

转载 作者:行者123 更新时间:2023-11-29 11:21:09 25 4
gpt4 key购买 nike

我已经用简单的英语理解了这两种并发控制的工作原理。然而我更感兴趣的是如何在代码中完成悲观控制。这是我的感受,假设两个用户正在尝试更新 wiki 文档

悲观控制

在这里,我们被告知要利用交易。

BEGIN
SELECT DOC FROM WIKI WHERE DOC_ID = 1;
/* business logic */
UPDATE WIKI SET DOC = INPUT WHERE DOC_ID = 1;
END

但是,这仍然容易覆盖以前的更新。我觉得事务中必须进行第二次检查,以查看 select 语句之后是否发生了任何写入,如果是则回滚或提交。我说得对吗?

最佳答案

您有两种并发选择(悲观):

Table level Locking and Row Level Locking:

但请记住,如果您有多个用户,锁定可能会导致死锁。使用并发时需要考虑很多事情。祝你好运!

更新:

由于锁定可能会导致死锁和其他并发问题,因此您可以实现 checkin 和 checkout 功能,其中当用户 checkout 某些记录时,它将阻止其他用户查看相同的记录。

关于mysql - 悲观与乐观并发控制实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38910470/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com