【发布时间】:2011-03-06 12:00:21
【问题描述】:
MySQL (MyISAM)
通常会尝试添加重复的行(由于唯一索引,这是不允许的)。
哪个更快?
1) 检查行是否存在。如果没有,则插入。
或
2) 无论如何都插入行。如果失败已经存在,则忽略它。
【问题讨论】:
-
我假设选项 2 是
INSERT IGNORE ...(而不是生成错误并抑制它)
标签: mysql
MySQL (MyISAM)
通常会尝试添加重复的行(由于唯一索引,这是不允许的)。
哪个更快?
1) 检查行是否存在。如果没有,则插入。
或
2) 无论如何都插入行。如果失败已经存在,则忽略它。
【问题讨论】:
INSERT IGNORE ...(而不是生成错误并抑制它)
标签: mysql
好吧,我不是 MySQL 专家,但选项 1 需要两个步骤/周期。选项 2 只是迈出了一步。选项1有两个返回值(1看有没有数据,2一般是插入的id),选项2只返回1个值。
我总是选择选项 2。
【讨论】:
如果您使用 MyISAM,1) 并不是一个真正的选择,因为您需要使用 MyISAM 不支持的事务。
【讨论】: