求教 innodb事务处理的时候会不会表锁定?
因为要请求API,这个时间和结果不好控制,
1、commit之后请求API,失败则再重新处理刚才处理的数据
2、请求API成功之后再commit提交
这两种方案哪个更好,感觉都有问题,求大虾赐教更好的方案

解决方案 »

  1.   

    innodb事务处理的时候会表或者行锁定
      

  2.   

    会  当更新条件或者删除条件无索引的时候会表锁定
    不要commit  就按照默认的自动commit
      

  3.   

    会  当更新条件或者删除条件无索引的时候会表锁定
    不要commit  就按照默认的自动commit
    你是说不用事务处理,因为涉及到资金所以必须要事务处理
      

  4.   

    因为会锁表, 一个事务持续时间应尽可能地短, 且中间不要有交互性的操作.
    你的问题, 最好的解决方案是有分布式事务(或2阶段提交),但应用起来很烦琐. 也可能不支持所以综合考虑, 方案一会更好些. 多写些代码来处理API失败后的状况.
    不要用方案二, 在事务中请求API, 万一API卡住, 假如有锁表的话,你的整个系统(包括其他进程)都可能被拖累