【发布时间】:2017-09-18 08:20:54
【问题描述】:
我有一张包含数百万条记录的表。我必须确保记录是唯一的。我想知道SELECT.. where 更好还是DELETE..where 更好?
问题更新:我只想保留唯一记录。
进一步更新
我正在运行线程,并且由于某些未知的原因,尽管检查了它们,但它们仍在 tabke 中插入 dups……很可能是由于同时运行 SELECT。那么询问是否检查记录是否存在比简单地删除匹配记录的行更昂贵?
【问题讨论】:
-
问题含糊不清。您只想显示唯一记录还是仅存储唯一记录?
-
或者你只是想要一个是/否关于它们是否都是独一无二的?所有可能的问题都有答案;我不想开始回答错误的问题。
-
@RickJames 我正在运行线程,并且由于一些未知的原因,尽管检查了它们,但它们仍在 tabke 中插入 dups……很可能是由于同时运行
SELECT。因此,询问是否检查记录存在是否比简单地删除匹配记录的行更昂贵? -
如果不在事务中,检查存在将不起作用。查看
INSERT ... ON DUPLICATE KEY UPDATE ... -
@RickJames 但我不必更新。