如果我有一个Ids(1,4,6,7)列表和一个db表,我想删除id在这个列表中的所有记录,那么最快的方法是什么?
答案 0 :(得分:134)
您的问题几乎可以解释SQL:
DELETE FROM table WHERE id IN (1, 4, 6, 7)
答案 1 :(得分:10)
delete from t
where id in (1, 4, 6, 7)
答案 2 :(得分:-5)
正确答案是速度取决于您正在使用的特定实现/引擎的特性,并且您应该注意任何假装能够对此问题给出明确答案的庸医。
如果您的系统的优化器太差,以至于它没有从'WHERE id IN(...)'中发现优化机会,那么它将进行表扫描,这可能比给出4个单独扫描慢得多删除命令。