Уведомления

Группа в Telegram: @pythonsu

#1 Окт. 2, 2014 20:42:41

despair4
Зарегистрирован: 2014-09-07
Сообщения: 55
Репутация: +  0  -
Профиль   Отправить e-mail  

sqlite тормоза

данный код:

def add_pilots_corps_to_db(kills_data):
    for i in reversed(kills_data):
        if int(i["victim"]["characterID"]) and int(i["victim"]["corporationID"]):
            c=corp(id=i["victim"]["corporationID"],
                 name=i["victim"]["corporationName"])
            c.save()
            pilot(id=i["victim"]["characterID"],
                  name=i["victim"]["characterName"],
                  corp=c).save()

в тестах выполняется мгновенно, но как только я запускаю его на сервере, начинаются тормоза в 15 секунд из-за обращений к винту

как его завернуть в транзакцию, чтобы отменить многократные обращения к винту?

Офлайн

#2 Окт. 3, 2014 05:30:36

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

sqlite тормоза

Офлайн

#3 Окт. 3, 2014 14:19:46

despair4
Зарегистрирован: 2014-09-07
Сообщения: 55
Репутация: +  0  -
Профиль   Отправить e-mail  

sqlite тормоза

FishHook
Вот так вот

сорри не понял как этим пользоваться

дописал код так:

from django.db import transaction

@transaction.atomic
def add_pilots_corps_to_db(kills_data):
...
вроде винт перестало дербанить по 10-15 сек

Офлайн

#4 Окт. 3, 2014 19:50:58

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

sqlite тормоза

>>>сорри не понял как этим пользоваться
и что конкретно не понял?



Офлайн

#5 Окт. 4, 2014 08:41:53

despair4
Зарегистрирован: 2014-09-07
Сообщения: 55
Репутация: +  0  -
Профиль   Отправить e-mail  

sqlite тормоза

FishHook
и что конкретно не понял?

как в балк засунуть сразу 2 модели

Офлайн

#6 Окт. 4, 2014 09:14:26

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

sqlite тормоза

Две модели = два балка. Сначала накопите список, а потом его разом балк_криэйт, вместо того чтобы в цикле криэйтить каждую отдельную запись. Или у вас там апдейт?



Офлайн

#7 Окт. 4, 2014 11:25:39

Rusich
Зарегистрирован: 2014-09-29
Сообщения: 19
Репутация: +  0  -
Профиль   Отправить e-mail  

sqlite тормоза

Тему надо назвать не “тормоза sqllite”, а “моя криворукость и незнания”

Офлайн

#8 Окт. 4, 2014 13:23:00

despair4
Зарегистрирован: 2014-09-07
Сообщения: 55
Репутация: +  0  -
Профиль   Отправить e-mail  

sqlite тормоза

FishHook
Или у вас там апдейт?

если нет записи то создание, если уже есть запись с этим идентификатором то апдейт

Офлайн

#9 Окт. 4, 2014 13:40:34

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

sqlite тормоза

despair4
если нет записи то создание, если уже есть запись с этим идентификатором то апдейт
И каким образом, по вашему, джанга это разруливает?



Офлайн

#10 Окт. 4, 2014 17:25:35

despair4
Зарегистрирован: 2014-09-07
Сообщения: 55
Репутация: +  0  -
Профиль   Отправить e-mail  

sqlite тормоза

ну наверное читает таблицу, потом определяется добавлять или апдейтить

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version