美文网首页
前脚刚往数据库插入数据,后脚就查不出来?

前脚刚往数据库插入数据,后脚就查不出来?

作者: 程序员麦冬 | 来源:发表于2020-10-16 14:18 被阅读0次

线上出现了一个Bug,前脚刚插入的数据,后脚就查不出来。导致了请求的失败, 数据库还可不可信了?

先看看代码流程

这是一个很简单的流程,就是插入了一条数据,然后紧接着select。

insert test (id) values (1);
select test where id=1; => 查出来为空

前脚刚插入,而且采用的是自动提交模式,那么insert这条就自动提交了。那为何紧接着查不出来呢?这个是在同一个线程之内啊,不存在时序混乱的问题。这时候,我们就得看看我们的环境了

部署模式

我们先看一看我们的应用部署模式吧。


我们的应用是通过APP是通过DBProxy去查询数据库的。DBProxy可以有效的管理连接,以及一系列的分析/审计/权限功能,相当好用。
在它们提供的功能里面,有一项功能引起了我的注意,就是透明主从功能。这个功能的描述为:


推理

按照启用了这个功能后,我们的sql执行模式应该是这样insert到主库而select到从库。


这时候只要主从稍微有些延迟,那么select去从库就找不到数据从而引起问题了!

解决方案

首先,我们让DBProxy先下掉这个功能,至于主从负载分离,我们采用了另一个方案。


虽然需要修改代码,但比起线上出问题好多了。

最后

感谢大家看到这里,如果本文有什么不足之处,欢迎多多指教;如果你觉得对你有帮助,请给我点个赞。

也欢迎大家关注我的公众号:程序员麦冬,每天更新行业资讯!

相关文章

  • 前脚刚往数据库插入数据,后脚就查不出来?

    线上出现了一个Bug,前脚刚插入的数据,后脚就查不出来。导致了请求的失败, 数据库还可不可信了? 先看看代码流程 ...

  • 数据库操作

    一定要记住数据库操作是一个耗时操作!! 如果刚存数据库就查询数据库,会导致新存入到数据拿不到!插入后至少1秒延迟查...

  • FMDB使用

    创建数据库 数据库文件路径 创建表 增删改查操作 插入数据 插入模型数组 插入字典类型数据,存入的日期保存下来。 ...

  • mongodb及express框架(0812)

    安装mongodb mongodb增删改查操作 插入数据 查询数据 插入多条数据 切换数据库并进入 test 修改...

  • 前脚打后脚

    这两天糟心事又多了起来,刚清闲两天,又要应付各种事。工作上的,家里的。 也许还是高估了自己的能力,才会让自己这样狼...

  • 数据库的使用

    mysql数据库的客户端 数据库:增删改查 连接数据库 创建数据库 进入数据库 创建数据表 插入数据 筛选所有的员...

  • 数据库操作优化

    数据库耗时操作主要是往数据库执行写操作// 插入数据[db executeUpdate:@"INSERT INTO...

  • 生活是不是都是前脚刚爬出深渊 后脚又陷入了沼泽

  • MongoDB记录_基本操作

    基础用法(增删改查) 新建数据库 查看所有数据库 删除数据库 删除集合 插入文档使用insert()或save()...

  • 解决SQLAlchemy MySQL Oracle 中文执行乱

    在使用SQLAlchemy 往数据库插入数据时,提示 UnicodeEncodeError: 'ascii' co...

网友评论

      本文标题:前脚刚往数据库插入数据,后脚就查不出来?

      本文链接:https://www.haomeiwen.com/subject/pcpzpktx.html