@EgorLyutov

Django ORM почему медленно работает create?

Всем привет, пишу сейчас свое первое веб-приложение, и пишу его на Django, изначально не знал про django orm, и поэтому запросы к БД выполнял через sqlite3, потом узнал о замечательном ORM, и решил переписать. И тут я столкнулся с проблемой скорости выполнения. Пример кода:
#c = db.connect(database="/home/egor/openvpnClientEnv/bin/openvpnclient/client_db.sqlite3")
#cu = c.cursor()
#cu.execute("""DELETE FROM OpenVpnClient;""")
#data = get_lst_client()
#for client in data:
# cu.execute("INSERT INTO OpenVpnClient(clients_name, clients_ip) VALUES (:name, :ip_address)", client)
#c.commit()
#c.close()

Время выполнения: 0.159376859665
Делаю запрос с такими же входными данными с помощью orm:
Clients.objects.all().delete()
data = get_lst_client()
for client in data:
Clients.objects.create(clients_name=client['name'], clients_ip=client['ip_address'])

Время выполнения: 6.6506586765

Как видно разница просто огромна, читал документация ничего похожего не нашел. Может кто подсказать, где моя ошибка?
  • Вопрос задан
  • 2706 просмотров
Решения вопроса 1
Работа с sqlite достаточно медленная. Думаю проблема в этом, о чем и предупреждает документация по джанге. Sqlite использовать только в тестовых целях. Попробуйте попробовать другой бэкенд db для теста. К примеру MySQL или PostgreSQL
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы