开发者社区> 问答> 正文

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

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

展开
收起
yayajiang 2016-05-14 11:39:21 5041 0
1 条回答
写回答
取消 提交回答
  • 专注于数据存储系统、MySQL源码研究和改进、MySQL性能优化和功能改进,并设计了阿里云高可靠双通道binlog方案。他在业务场景分析、系统瓶颈分析、性能优化方面拥有丰富的经验。微博@淘宝丁奇。

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

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

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

    2019-07-17 19:03:06
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
One Box: 解读事务与分析一体化数据库 HybridDB for MySQL 立即下载
One Box:解读事务与分析一体化数据库HybridDB for MySQL 立即下载
如何支撑HTAP场景-HybridDB for MySQL系统架构和技术演进 立即下载

相关镜像