zoukankan      html  css  js  c++  java
  • 解决关于多客户端操作数据库并发问题

    由于项目需要,需要根据条件每次从数据库(mysql)中取出3条数据,然后在客户端对数据进行操作,大概没条会耗时5秒钟左右吧,然后再将这条数据更新回数据库。更新之后还可以再次获取,多个客户端的情况下回出现并发问题,多个客户端同时获得了相同的数据,这就会导致一条数据会被操作多次,这就牵扯到了成本问题。

    经过好多天的百度,摸索,终于发现了一个个人感觉比较不错的方法,但是没有测试具体效果怎么样。

    方法是:

    1、在数据库中添加一个字段记录数据的最新时间,由于mysql没有毫秒,所以就干脆用字符串了,数据库添加一个变量用于标志正在操作数据

    2、由于我的项目的一次性获得3条数据,所以在循环对数据操作的时候进行判断更新:

    update test set sendindex=1,timeindex='" + DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss ffff") + "' where id=" + id + " and timeindex='" + datetimeindex + "'";

    由于数据操作时间很快,所以要记录到毫秒,判断更新受影响的行数,if<=0则continue,else则 操作数据,这样就防止了并发

    3、操作完成后吧数据更新回去就ok了

    可能还有其他更好的方法,希望知道了给点建议,请各位指点下……

  • 相关阅读:
    Clam and fish
    费马小定理求逆元模板题
    1
    DP 习题
    106. 从中序与后序遍历序列构造二叉树
    计算几何(判断四边形形状)
    中国剩余定理
    BFS模板
    DFS模板
    线段树
  • 原文地址:https://www.cnblogs.com/bfyx/p/2554422.html
Copyright © 2011-2022 走看看