首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在主应用程序中插入到DB的行在不同的进程中不可用。MySQL可以推迟一些查询吗?

问在主应用程序中插入到DB的行在不同的进程中不可用。MySQL可以推迟一些查询吗?
EN

Database Administration用户
提问于 2018-03-13 08:58:11
回答 1查看 31关注 0票数 0

我有这样的问题。我的主应用程序处理一些请求,并将新行插入DB中,然后向队列发送一个事件。我有不同的进程侦听该队列,当他获得插入对象的详细信息并试图从DB获取该对象时,DB返回空行。我写了一个有退避的算法,通常在3到4次之后,我设法得到了那一行。我的问题是,它们是否是导致MySql中某些默认缓存机制的原因。

我使用Laravel5.0作为应用程序框架,使用MySQL 5.6.38作为DB和

EN

回答 1

Database Administration用户

发布于 2018-03-14 13:33:09

使用Innodb。

不要使用LOCK TABLES。

做

代码语言:javascript
复制
BEGIN;
-- some SQL statements that need to be treated atomically:
INSERT INTO my_table ...;
INSERT INTO my_queue ...;
COMMIT;

通过使用BEGIN和COMMIT,您可以忽略autocommit的设置,这可能会给您带来麻烦。

队列中可能存在一些棘手的问题;请向我们展示用于队列和退队列的SQL,pluse SHOW CREATE TABLE。

票数 0
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/200069

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档