【发布时间】:2014-04-14 04:45:33
【问题描述】:
我目前正在开发一个 PHP Web 应用程序并使用 MySQL(xampp 默认设置)作为我的 dbms。我的问题是不同的用户可以连接到网络应用程序并同时EXACT发出更新查询。
这是一个例子,
前 10 行(info_id 1 到 10)数据包含 info_update = TRUE
For example
**User 1 issue**
UPDATE info SET reply='helloworldOne' WHERE info_id = (SELECT info_id FROM table WHERE info_update = 'TRUE' ORDER BY info_id DESC);
**User 2 issue**
UPDATE info SET reply='helloworldTwo' WHERE info_id = (SELECT info_id FROM table WHERE info_update = 'TRUE' ORDER BY info_id DESC);
**User 3 issue**
UPDATE info SET reply='helloworldThree' WHERE info_id = (SELECT info_id FROM table WHERE info_update = 'TRUE' ORDER BY info_id DESC);
and so on....
我想要做的是所有这些查询都可以更新到不同的行,直到 info_id (10)。因此,用户 11 将自动发出(在我的代码中完成)INSERT 查询,因为表中不再存在 info_update = TRUE。
1) 我的问题是,如果这些查询同时向 dbms 发出,那么上述所有查询都会更新到同一行(info_id)吗?
2) 如果 Q1 的答案是否定的,我可以说“SELECT info_id FROM table WHERE info_update = 'TRUE' ORDER BY info_id DESC”在这种情况下会生成不同的 info_id 而不是 info_id (10)对于每个查询?
3) 我是否需要使用 RabbitMQ 对所有这些请求进行排队,以便请求一一执行,执行用户 1 请求,然后执行用户 2 请求,然后执行用户 3 请求?无论如何,我是 RabbitMQ 的新手,所以我不确定 RabbitMQ 是否可以做到这一点....
【问题讨论】:
标签: php mysql sql concurrency rabbitmq