【发布时间】:2016-01-13 20:34:04
【问题描述】:
如果这个问题很愚蠢或已经被问过,我很抱歉,但我找不到太多关于它的信息。
在 SQL 中唯一存储的最快/最佳方法是什么
选项 1:创建唯一索引,并在 PHP 中使用 try -> catch 块? 选项 2:查询以检查是否存在,然后采取行动?
我认为选项 2 是最好的,但使用选项 1 我只有 1 个查询,如果不存在则有 2 个查询。
由于我需要尽可能减少数据库查询,我会选择选项 1,但不确定使用 try 块绕过它是否是一个好的选择?
谢谢
【问题讨论】:
-
创建
Unique Index,然后使用INSERT IGNORE,可能是最好的方法。 -
是的,这很好,我忘记了 IGNORE 语句,但是 IGNORE 好用吗?
-
是的,如果你想删除
IGNORE,还有很多其他选项,比如使用mysql的REPLACE或INSERT (...) ON DUPLICATE KEY UPDATE...,这些会有点慢,因为INSERT或@987654327 @ 将发生。