如果我有一个Ids列表(1,4,6,7)和一个数据库表,我想删除列表中的所有记录,在这个列表中最快的方式是做什么?删除列表中的ID
Q
删除列表中的ID
61
A
回答
105
你的问题几乎法术这个SQL:
DELETE FROM table WHERE id IN (1, 4, 6, 7)
10
delete from t
where id in (1, 4, 6, 7)
-5
正确的答案是这样的速度取决于您所使用的特定实现/发动机的特点,你应该提防任何假装能够对这个问题给出明确答案的庸医。
如果你的系统的优化器很差,它不会从'WHERE id IN(...)'中找到优化机会,那么它将执行表扫描,这可能比给出4单独的删除命令。
+1
垃圾。请引用一个数据库引擎,其中4个单独的删除会更快。 – Blorgbeard 2010-04-11 09:47:07
+1
如果系统中的优化器很差...您应该切换到另一个数据库引擎 – 2010-04-11 10:12:55
相关问题
- 1. 从ID列表中删除单引号
- 2. 删除列表中的ID如果ID不在其他列表中
- 3. 删除列由ID
- 4. 使用实体框架从ID列表中删除多个ID
- 5. 比较列表 - 删除列表,其中ID = ID和日期>日期
- 6. 列表中删除
- 7. 如果ID的ID不在ID列表中,从列表中删除对象的最佳方法是什么?
- 8. C#实体 - 通过ID删除项目 - ID删除是在其他列表
- 9. 删除表中的坏列
- 10. 删除列表中的
- 11. 删除表中的列
- 12. 删除列表中的
- 13. 删除列表中的行
- 14. 删除Python中的列表
- 15. 删除列表中的行
- 16. 删除列表中的重复列表
- 17. 删除列表中的空列表
- 18. 删除列表中的列表
- 19. Android - 从阵列列表中删除项目ID
- 20. 从列表中删除值从列表中删除
- 21. 无法从基于一组ID的字典的列表中删除列表
- 22. 在Python列表中删除重复的ID
- 23. 使用它们的ID从列表中删除项目和linq
- 24. 使用HQL语句删除ID列表中的多条记录
- 25. 删除在列表视图中点击的物品ID
- 26. 删除列表
- 27. 删除列表
- 28. 删除列表
- 29. 如何在php-activerecord中大量删除id不在列表中?
- 30. 如何从ID的数据列表代表删除图像?
有没有人对此进行了基准测试vs一对一删除? – jayarjo 2010-06-08 10:59:05
@jayarjo:任何差异都可能是微不足道的,我不认为有任何理由一个接一个地删除会更有效。 – 2010-06-08 16:50:14
这只是性能可能会带来便利的地方。例如,我已经有了一个一个一个地完成它的功能。但是如果有机会提升性能,我可以写一些额外的代码,否则可能不值得。 – jayarjo 2010-06-09 10:55:56