gpt4 book ai didi

MySQL INSERT 和 SELECT 优先顺序

转载 作者:行者123 更新时间:2023-11-29 01:19:12 26 4
gpt4 key购买 nike

如果在 mysql 表上同时执行 INSERT 和 SELECT,哪个先执行?

示例:假设“users”表行数为 0。

然后这两个查询同时运行(假设它在同一 mili/micro second):

INSERT into users (id) values (1)

SELECT COUNT(*) from users

最后一个查询会返回 0 还是 1?

最佳答案

取决于您的 users 表是 MyISAM 还是 InnoDB。

如果是 MyISAM,一条语句或另一条语句会锁定表,除了 locking tables 之外,您几乎无能为力。自己。

如果是InnoDB,就是基于事务的。多版本架构允许对表进行并发访问,SELECT 将看到其事务开始时的行数。如果有 INSERT 同时进行,SELECT 将看到 0 行。事实上,如果 INSERT 的事务尚未提交,您甚至可以在几秒钟后执行的 SELECT 看到 0 行。

两个事务不可能真正同时开始。交易保证有一定的顺序。

关于MySQL INSERT 和 SELECT 优先顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2842053/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com