当多个用户尝试同时更改网站 MySQL 数据库中的相同数据时会发生什么?

What happens when multiple users try to change the same data at the same time in a website's MySQL database?

假设 PHP 脚本将一些文本附加到 MySQL 数据库中的现有数据。假设现有数据是abc。现在一个用户想要追加 123 而另一个想要追加 xyz。他们两个运行同时脚本。谁将首先附加?最后的结果是abc123xyz还是abcxyz123

在更坏的情况下,假设脚本首先获取数据,将给定的文本附加到它,然后替换数据库中的旧数据。那么这里'survive'是谁的零钱呢?结果会是 abc123 还是 abcxyz

对不起,如果之前有人问过。

取决于您使用的引擎。对于 InnoDB MySQL 仅对写入执行行级锁定。 使用查询

访问数据库会有微小的差异

它将执行第一个 query.Then它将执行第二个查询 因此数据将是 123abc 或 123xyz,具体取决于首先执行的查询。