gpt4 book ai didi

php - MYSQL - 什么更快?插入自动增量或更新+选择?

转载 作者:行者123 更新时间:2023-11-29 02:56:48 25 4
gpt4 key购买 nike

我有一个简单的问题。

什么是更快的性能?

A) 空白“插入”并自动递增到 INNODB。 (表中只有 1 列,id(int))并通过 PHP 函数 mysql_insert_id() 返回最后一个 ID;

 $db=mysql_query("insert into `system_id` () VALUES()",$GLOBALS["dbspojenie"]);               
$id = mysql_insert_id();
return $id;

B) 更新 id 之后,从同一行中选择该 id? (MYISAM)

  $db=mysql_query("UPDATE `system` SET `id`=`id`+1",$GLOBALS["dbspojenie"]);
$db=mysql_query("select `id` from `system`",$GLOBALS["dbspojenie"]);
while($zaznam=mysql_fetch_array($db)):
$id=$zaznam["id"];
endwhile;
return $id;

由于行锁定,我在 A) 中使用了 INNODB。

这只是一个问题,谢谢你的回答。 :)

最佳答案

根据您的代码,我认为第一个 INNODB 示例会更快。在第二个示例中,您有 UPDATE 和 SELECT,而在第一个示例中有一个 INSERT。

不要忘记 MYISAM 使用 table level locking vs INNODB 的行级锁。如果您从表中进行大量读取,我会使用 MYISAM,但在其他情况下(比如这个)我更喜欢 INNODB。

正如 Mark 在上面的评论中所述,没有 LIMIT 的 SELECTing 表将选择完整的表。现在想想 10 亿行表。什么更快:选择 10 亿行或 1 次插入?

关于php - MYSQL - 什么更快?插入自动增量或更新+选择?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29962587/

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