开发者社区> 问答> 正文

MYSQL提交数据后,等一会才能生效,是怎么回事呢?

yayajiang 2016-05-14 11:39:21 2376

各位高手,小弟有个问题一直未能解决;问题是这样的(举例说明):
有两个HTTP请求,一个请求结果(新增成功)已经返回了,然后再执行另一个请求(通过js控制),结果有时查到有时查不到有时又查到,查不到的时候过一会就能查到。就像:已经commit了,但是等一会才能执行成功一样;数据库客户端直接执行SQL插入数据也是要等一会才能查到
用的 java+mysql+阿里云+tomcat
请各位高手帮我研究下 是怎么回事,不甚感激!

SQL JavaScript 关系型数据库 MySQL 应用服务中间件 数据库
分享到
取消 提交回答
全部回答(1)
  • 丁奇
    2019-07-17 19:03:06

    按照您的描述,比较大的可能是:
    1) 两个http请求使用的不是同一个连接。
    2) 而第一个提交动作其实并不是正的commit,而是只是插入成功。

    我们经常有客户发现类似的问题,就是java connector会默认使用set autocommit=0的模式。
    这样第一个线程执行成功后,其实并没有提交事务,
    第二个线程去查的时候是查不到的。

    这个是一种比较常见的可能。至于要确诊,您可以开启RDS的审计日志,从数据库的执行语句序列中印证原因。

    0 0
+ 订阅

分享数据库前沿,解构实战干货,推动数据库技术变革

推荐文章
相似问题
推荐课程