如果同时有多个请求,会发生什么情况?

时间:2020-06-27 12:05:50

标签: php mysql database

我目前正在开发一个应用程序,其中有一个部分,用户在其中投票给一张图像,并显示一条消息“ You are the Nth选民”。假设在2-3秒的时间内有1000个甚至100个用户投票支持特定的图像。如何确保每个用户在数据库中正确显示N并正确增加N的值?

我正在使用MySQL和PHP。

1 个答案:

答案 0 :(得分:2)

通常,关系数据库实现ACID属性(在Wikipedia或其他来源中详细了解它们)。

这些保证事务不会相互干扰,并且数据库保持一致。因此,如果一堆用户在同一时间投票,而一堆查询查询,那么每个查询将与数据在运行时的视图保持一致。当然,结果可能会随着时间而改变。

我还应该添加这个。实施ACID属性会增加数据库的开销。并非所有数据库始终都100%符合ACID,因此这还取决于您的数据库设置(对于MySQL在存储引擎上)。但是,总的来说,如果代码编写正确,则不必担心数据库中的东西“正确递增”。