假设我有一个包含 200k+ 行的表的数据库。
该表有一个 id 为 1800 的固定元组。元组序列的其余部分从 300k+ 开始。
我需要清理这张表,删除所有记录而不删除 id 为 1800 的一个寄存器。我想出了 3 种类型的查询,我可以运行:
DELETE FROM table WHERE id > 1800
DELETE FROM table WHERE id <> 1800
DELETE FROM table WHERE id NOT IN (1800)
我感觉第一个比其他更快,但我不确定,因为所有其他数据的 id 都大于 1800。
其中哪一个更快,为什么?另外,如果有一种更快的方法可以删除除无法删除的记录之外的记录,请告诉我。