最近出现了个非常严重的问题,明明在binlog记录了update的语句,但最后的数据结果却是跟没执行一样,这是为什么?语句的执行环境:InnoDB引擎,频繁读写同条记录个人分析:是否由于锁行原因,造成update语句没有执行成功?请高手指教,感激不尽!

解决方案 »

  1.   

    1 看慢查询日志,错误日志
    2 对一条记录来说最后的结果要看最后的update语句
      

  2.   


    你把日志导出来,重新执行一下,看结果是否已经改变。
    1楼的“2 对一条记录来说最后的结果要看最后的update语句”,是否在执行UPDATE后,还有其他的操作又对这条记录进行了修改操作?
      

  3.   

    是在事务里面么?
    有commit么?
      

  4.   

    1 为了提高效率,所以没做慢查询记录。错误日志没有记录sql的执行结果吧
    2 除了前面的那条update语句外,没有语句对这条记录进行修改了
      

  5.   

    日志导出来重新执行,肯定是可以成功的,update语句没问题,只是当前运行update语句的环境不一样,原来执行时的mysql负载较高,也有可能其他语句刚好对这条记录的其他字段进行操作