数据库单节点并发与服务端验证

1、时间戳

2、查询某条数据,判断某字段值时,使用排它锁(with (updlock))进行锁定

3、直接修改,根据ID查询 并且某标识等于符合修改条件的标识,根据影响行数判断是否修改成功(不确定是否能防止并发,但已经将并发的可能降到最小)

  不是所有操作都需要控制并发的,根据项目的具体需求与进度或并发产生的可能性来权衡,

4、服务端验证可以简单的防止重复操作,但无法控制并发,线程A查询某条数据验证某字段值合法后修改,另一个线程B与线程A同时到达或比线程A晚到达,但在线程A修改

之前,线程B查到了该字段值合法,此时A与B均修改成功,A从查到改的这段时间越长发生并发的几率越大,有效的缩短时间间隔,可以大大的减少并发的产生。

  缩短时间间隔主要就是提升查询和修改语句的性能,在数据库直接验证要比将字段查询到程序中验证或多或少会缩短时间间隔。

  

猜你喜欢

转载自www.cnblogs.com/zhangleidswc/p/9124500.html