Подтвердить что ты не робот

Удалить где id в списке

Если у меня есть список идентификаторов (1, 4,6,7) и таблица db, которые я хочу удалить все записи, где id находится в этом списке, что является самым быстрым способом сделать это?

4b9b3361

Ответ 1

Ваш вопрос почти заставляет SQL для этого:

DELETE FROM table WHERE id IN (1, 4, 6, 7)

Ответ 2

delete from t
where id in (1, 4, 6, 7)

Ответ 3

Правильный ответ заключается в том, что скорость зависит от характеристик конкретной реализации/движка, которую вы используете, и что вы должны остерегаться любого шарлатаря, который притворяется, что может дать определенный ответ на этот вопрос.

Если оптимизатор вашей системы настолько низок, что не видит возможности оптимизации из "WHERE id IN (...)", тогда он будет выполнять сканирование таблицы, что может быть намного медленнее, чем предоставление 4 отдельных удалить команды.