Массовое удаление Django удаляет только сто строк одновременно

У меня есть две модели с отношением один ко многим между ними:

class HomeCarrier(models.Model) 
    short_name = models.CharField(max_length=32, unique=True)

class CarrierZipCoverage(models.Model):
    zip_code = models.CharField(max_length=5)
    home_carrier = models.ForeignKey('HomeCarrier', null=True, blank=True)

Согласно документам

Вы также можете удалить объекты навалом. Каждый QuerySet имеет метод delete(), который удаляет всех членов этого QuerySet.

Согласно источникам комментариев

На самом деле удаление - это 2 запроса - один для поиска связанных объектов и один для удаления.

Я удивился, когда я пытаюсь массово удалить почтовые индексы покрытия оператора 27k

carrier.carrierzipcoverage_set.all().delete()

Я получил один запрос на удаление для каждой сотни строк в базе данных. Принимая во внимание, что я ожидал видеть только один запрос на удаление в журнале mysql для всех почтовых индексов покрытия за один раз.

mysql log

Вопрос в том, есть ли способ удалить все объекты из базы данных с помощью одного запроса на удаление без обращения к raw sql?

0 ответов

Другие вопросы по тегам