Я пытаюсь удалить много строк, используя поиск первичного ключа.Удаление строк в MySQL с использованием индекса первичного ключа
например.
DELETE FROM t1 WHERE t1.pid IN (SELECT pid FROM ...);
Здесь pid
является первичным ключом таблицы t1
, но он не использует индекс в случае удаления.
Внутренний запрос возвращает слишком много строк, поэтому весь запрос занимает слишком много времени, так как внешний не использует индекс.
Как я могу удалить эти строки быстрее?
«, но он не использует индекс в случае удаления ", как вы уверены в этом? Как вы проверяете? –
Если вы попытаетесь удалить основную часть таблицы, преимущество использования индекса не будет. – jarlh
Возможный дубликат [Оптимизация оператора удаления MySQL] (http://stackoverflow.com/questions/1987375/mysql-delete-statement-optimization) –