делает слишком много операций записи в django rest framework и postgres - PullRequest
0 голосов
/ 03 февраля 2020

У меня есть этот лист Excel, где у меня может быть целых 3000-5000 или может быть больше данных (идентификаторы электронной почты), и мне нужно вставить каждый из них в мою базу данных по одному. Меня попросили не делать это много операций записи в одной go. Как мне go решить эту проблему, чтобы я не делал так много записей в базе данных? Любая подсказка будет высоко оценена. Решение, которое я мог придумать, заключается в следующем. https://www.caktusgroup.com/blog/2019/01/09/django-bulk-inserts/

Ответы [ 2 ]

2 голосов
/ 03 февраля 2020

Я бы проголосовал за выполнение массовых операций с django самой моделью, например, вы можете сделать следующее с вашим классом модели:

... Entry.objects.bulk_create([
...     Entry(headline='This is a test'),
...     Entry(headline='This is only a test'),
... ])

(код с django веб-сайта)

вы также можете использовать свой диоратор транзакций, если вы можете быть уверены, что транзакция базы данных является атомарной c (все или ничего), это удобно, когда вы хотите выполнять длительные процессы для своих сущностей или преобразовывать их

from django.db import transaction

@transaction.atomic

украсить ваш метод, который вставляет записи в базу данных

0 голосов
/ 03 февраля 2020

Я думаю, что ссылка, которую вы включили, будет работать довольно хорошо!

Просто хотел добавить еще один вариант. Многие базы данных имеют функции пакетной / массовой загрузки. В зависимости от того, какую БД вы используете, вы можете подключиться к ней напрямую и выполнять запись без Django.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...