删除列表中的id
如果我有一个Ids列表(1,4,6,7)和一个数据库表,我想要删除所有logging在这个列表中的id,这样做的最快方法是什么?
你的问题几乎拼写这个SQL:
DELETE FROM table WHERE id IN (1, 4, 6, 7)
delete from t where id in (1, 4, 6, 7)
正确的答案是速度取决于你正在使用的特定实现/引擎的特性,你应该小心任何佯装能够给出明确答案的庸医。
如果你的系统的优化器非常差,不能从WHERE ID IN(…)中find优化机会,那么它将执行表扫描,这可能比给出4个单独的删除命令慢很多。