| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
共有 219 人关注过本帖
标题:请问记录缓冲或表缓冲,能处理同时新插入数据的冲突吗
只看楼主 加入收藏
kofan
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2025-7-27
收藏
 问题点数:0 回复次数:6 
请问记录缓冲或表缓冲,能处理同时新插入数据的冲突吗
如题,
搜索更多相关主题的帖子: 数据 缓冲 插入 同时 冲突 
4 天前 17:52
easyppt
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:1
帖 子:373
专家分:912
注 册:2021-11-24
收藏
得分:0 
这个话题涉及的面有点广,相关技术点有:
1、主键设置
2、事务处理
3、更新冲突
    大部分都是由系统自动处理,以最后编辑的为准
    选项1:比如A和B同时编辑,A提交后,B也提交,则以B为准。认为这是正常的。不会处理冲突,
    选项2:如果A在编辑状态,任何人不可以编辑,那就要用时间戳,自己控制,比较繁琐,我的应用还没这么高级,所以选项2从来不用。
    大部分人都是选择选项1+事务,不会选择2这种

表缓冲新增行如果你担心重复录入的冲突,那没必要,这是管理上的问题,比如,一个订单总不至于A员工新增操作后,然后B员工也新增操作吧。
职责分工+权限,都知道...



[此贴子已经被作者于2025-8-19 08:30编辑过]

3 天前 08:24
hsfisher
Rank: 2
等 级:论坛游民
帖 子:108
专家分:71
注 册:2009-4-26
收藏
得分:0 
种个草
3 天前 08:27
yiyanxiyin
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:9
帖 子:284
专家分:2153
注 册:2023-6-29
收藏
得分:0 
新增数据分两步, 第一步新增的数据放缓冲区, 第二部提交数据
缓冲有两种模式:保守模式和开放模式, 保守模式在新增数据的时候不会锁定数据, 提交时会锁定(单条提交锁定时间很短, 批量提交根据数量锁定时间会延长), 如果多人同时提交那么会冲突, 第一个人锁定了数据, 后面的人会因为数据被锁提交失败(新增时是主键或唯一索引被锁),开放模式不会加锁, 但可能会引起唯一索引冲突而失败

所以能不能解决冲突,要怎么解决冲突, 看你的具体业务逻辑

[此贴子已经被作者于2025-8-19 11:19编辑过]

3 天前 10:05
kofan
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2025-7-27
收藏
得分:0 
以下是引用yiyanxiyin在2025-8-19 10:05:21的发言:

新增数据分两步, 第一步新增的数据放缓冲区, 第二部提交数据
缓冲有两种模式:保守模式和开放模式, 保守模式在提交数据的时候不会锁定数据, 提交时会锁定(单条提交锁定时间很短, 批量提交根据数量锁定时间会延长), 如果多人同时提交那么会冲突, 第一个人锁定了数据, 后面的人会因为数据被锁提交失败(新增时是主键或唯一索引被锁),开放模式不会加锁, 但可能会引起唯一索引冲突而失败

所以能不能解决冲突,要怎么解决冲突, 看你的具体业务逻辑


你好。谢谢你的解答。红色部分是不是写错了。
我想继续问一下。
调用cursorsetpro函数开启缓冲,是只需在表单init事件里执行一次?
还是我每次要修改数据时开启(比如编辑按钮的click事件中,开启缓冲)。然后在保存按钮的click事件中关闭缓冲?
3 天前 11:09
kofan
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2025-7-27
收藏
得分:0 
以下是引用easyppt在2025-8-19 08:24:28的发言:

这个话题涉及的面有点广,相关技术点有:
1、主键设置
2、事务处理
3、更新冲突
    大部分都是由系统自动处理,以最后编辑的为准
    选项1:比如A和B同时编辑,A提交后,B也提交,则以B为准。认为这是正常的。不会处理冲突,
    选项2:如果A在编辑状态,任何人不可以编辑,那就要用时间戳,自己控制,比较繁琐,我的应用还没这么高级,所以选项2从来不用。
    大部分人都是选择选项1+事务,不会选择2这种

表缓冲新增行如果你担心重复录入的冲突,那没必要,这是管理上的问题,比如,一个订单总不至于A员工新增操作后,然后B员工也新增操作吧。
职责分工+权限,都知道...



谢谢。在更新冲突上,我肯定不会选择选项2。 我看示例中,有让用户选择是否覆盖别人的修改。
表缓冲新增冲突,主要是主键ID,容易造成索引不唯一。
可能我想太复杂了。还是谁最后提交,以谁为准。这个简单。

[此贴子已经被作者于2025-8-19 11:23编辑过]

3 天前 11:11
yiyanxiyin
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:9
帖 子:284
专家分:2153
注 册:2023-6-29
收藏
得分:0 
"保守模式在提交数据的时候不会锁定数据, 提交时会锁定" 是写错了, 不好意思, 原帖已改,   关于是否在init事件里面开启缓冲一次, 还是click事件里面开启关闭, 这个你得自己取舍, 开启一次的方式肯定是长时间占用缓冲区,会占内存, 但换来的是速度的提升, 反复开启关闭的方式是用牺牲速度换空间

你的程序要变得足够优秀可以这样考虑:  自动判断内存可用空间大于某个阈值, 软件以速度优先(分配足够的内存,开启各种缓存,并长时间占用,确定不用了才释放), 否则以节约内存优先(用的时候分配内存,用完即释放, 不使用缓存).  为了避免被人误认为你的程序是个吞内存的怪兽, 你可以让用户选择以提升速度优先还是以优化内存优先

[此贴子已经被作者于2025-8-19 11:37编辑过]

3 天前 11:25
快速回复:请问记录缓冲或表缓冲,能处理同时新插入数据的冲突吗
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.030998 second(s), 10 queries.
Copyright©2004-2025, BC-CN.NET, All Rights Reserved