Php mysql插入是否总是连续的?

Php mysql插入是否总是连续的?,php,mysql,database,Php,Mysql,Database,如果一个人运行此查询,而世界不同地区的另一个人运行 insert into tbl(name)values('john'),('bale'),('ron') 在服务器上,这是在上一次查询后几秒钟,但在查询完成之前进行的。插入的值是否连续?像这样 insert into tbl(name)values('johnny'),('baleton'),('ronny') 或者它可能不是tbl的id | name列 我相信MySQL中的每个查询都发生在单个事务中(如果启用了自动提交)。如果你自己管理你

如果一个人运行此查询,而世界不同地区的另一个人运行

insert into tbl(name)values('john'),('bale'),('ron')
在服务器上,这是在上一次查询后几秒钟,但在查询完成之前进行的。插入的值是否连续?像这样

insert into tbl(name)values('johnny'),('baleton'),('ronny')

或者它可能不是
tbl
id | name

我相信MySQL中的每个查询都发生在单个事务中(如果启用了自动提交)。如果你自己管理你的交易,那么情况就更明显了。 我相信,出于这个原因,记录将按顺序插入

编辑:

我假设这都是关于
autoincrement
的,否则这个问题就没有意义了,正如在原始问题下的注释中所解释的那样

我被纠正了。委员会:

当访问自动递增计数器时,InnoDB使用一个特殊的表级auto-INC锁,该锁保留在当前SQL语句的末尾,而不是事务的末尾。

所以,是的,仍然有序。不是针对事务范围,而是单个SQL语句。

MySQL(至少使用InnoDB引擎)将为插入时读取表的第一条语句(非事务)分配下一个自动增量值(ai_max+ai_Increment)。因此,如果出现另一条语句,尝试插入,并在第一条语句之前完成,它将获得下一个AI值(AI_max+2*AI_increment),而不是分配给第一条语句的值

这与数据库的“顺序”差不多


有关MySQL InnoDB Auto Increment的更多信息,请参见

“连续”在关系数据库中没有实际意义。有一组数据。您可以通过添加诸如自动递增主键之类的内容,将“顺序”添加到这些集合中。db本身根本不在乎事情的顺序。旁注:当你让一大群你(可能)不认识的人插入任何东西而不注意SQL注入时,你要小心。看看隔离级别,他们可以控制这种情况的处理方式。@Markb我有
id
作为主键,为什么要“连续”或“有序”呢?这听起来像是你在依赖一个你不应该依赖的副作用。插入发生在单个事务的范围内(不管自动提交),所以我相信订单将被保留<代码>插入的值是连续的吗?=>是。如果要插入100行的单个查询需要10分钟才能完成。第二个查询在第一个查询之前运行completion@user3508453请不要在评论中提问。您可以编辑并添加到初始问题以使其更清晰,或者提出新问题。我也可以更正,我似乎错误地阅读了我自己的来源+1.
'john','bale','ron','johnny','baleton','ronny'