当多个用户尝试同时更改网站 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,具体取决于首先执行的查询。
假设 PHP 脚本将一些文本附加到 MySQL 数据库中的现有数据。假设现有数据是abc
。现在一个用户想要追加 123
而另一个想要追加 xyz
。他们两个运行同时脚本。谁将首先附加?最后的结果是abc123xyz
还是abcxyz123
?
在更坏的情况下,假设脚本首先获取数据,将给定的文本附加到它,然后替换数据库中的旧数据。那么这里'survive'是谁的零钱呢?结果会是 abc123
还是 abcxyz
?
对不起,如果之前有人问过。
取决于您使用的引擎。对于 InnoDB MySQL 仅对写入执行行级锁定。 使用查询
访问数据库会有微小的差异它将执行第一个 query.Then它将执行第二个查询 因此数据将是 123abc 或 123xyz,具体取决于首先执行的查询。