mysql 批量 insert 数据丢失问题

这两天发现mysql 批量insert 比如600条数据后,页面马上select就查询到580条,但是等几秒钟再查询就有600条(也有部分情况是永久只能查到580条了)

查看mybatis的日志发现循环每次批量insert 15条 按理说应该日志打印Updates 15  但是发现有一些只返回了Update 1了。

后来设置了mysql 的隔离级别,关闭mycat的读写分离,关闭mysql的同步,只从183主库读还是有这个问题。后来发现需要在addInstanceAndStructSubmitView方法加上

@Transactional(propagation = Propagation.REQUIRED,isolation = Isolation.READ_COMMITTED,timeout=36000,rollbackFor=Exception.class)

可能是addInstanceAndStructSubmitView这个方法中用到了spring 事务或者其他原因

@Override
@Transactional(propagation = Propagation.REQUIRED,isolation = Isolation.READ_COMMITTED,timeout=36000,rollbackFor=Exception.class)
public JSONObject addInstanceAndStructSubmitView(InstanceAndStructSubmitView instanceAndStructSubmitView,String token,boolean isSend,boolean isSendReview)

原文地址:https://www.cnblogs.com/xiaohanlin/p/11492715.html