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

时间:2015-04-30 08:21:06

标签: php mysql

我有一个简单的问题。

更快的性能是什么?

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)UPDATE 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。

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

1 个答案:

答案 0 :(得分:1)

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

不要忘记MYISAM使用table level locking对比INNODB的行级锁定。如果您从表中获得大量读数,我会使用MYISAM,但在其他情况下(如此)我更喜欢INNODB。

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

相关问题