Size: a a a

Django [ru] #STAY HOME

2020 July 12

AG

Artem Gubatenko in Django [ru] #STAY HOME
Jack
Да вроде как, там что то вроде игры
есть еще подобные, но тут можно смотреть как решали другие пользователи (после того как сам решишь)
а в других - не знаю, вроде нету такого
источник

J

Jack in Django [ru] #STAY HOME
Да только у меня с английским не очень
источник

AG

Artem Gubatenko in Django [ru] #STAY HOME
Jack
Да только у меня с английским не очень
там есть переведенные задания
не все, но есть
источник

J

Jack in Django [ru] #STAY HOME
Artem Gubatenko
там есть переведенные задания
не все, но есть
Да, взял задание, уже вижу)
источник
2020 July 13

A

Aquinary in Django [ru] #STAY HOME
Есть что-то в рамках ORM более быстрое, чем bulk_update?
statistic_model = apps.get_model('user', 'StatisticModel')
statistics = statistic_model.objects.all()
# for ... на самом деле я опустил эту часть перед запуском и получил указанное ниже время
statistic_model.objects.bulk_update(statistics, [шесть полей])

Вот от сюда взял саму инфу
При 10к записях время выполнения кода ~ 20 секунд. Это лучше, чем просто .update и тем более save, но это всё ещё медленно.
Мне бы хотелось поместить это во временные рамки, не превышающие более секунды.
Возможно ли это стандартными средствами ORM или надо писать равки?
Я посматриваю в сторону редис, но что-то боязно с ним, не работал и понимания того, как связать две дб между собой нет
источник

А

Алексей in Django [ru] #STAY HOME
Aquinary
Есть что-то в рамках ORM более быстрое, чем bulk_update?
statistic_model = apps.get_model('user', 'StatisticModel')
statistics = statistic_model.objects.all()
# for ... на самом деле я опустил эту часть перед запуском и получил указанное ниже время
statistic_model.objects.bulk_update(statistics, [шесть полей])

Вот от сюда взял саму инфу
При 10к записях время выполнения кода ~ 20 секунд. Это лучше, чем просто .update и тем более save, но это всё ещё медленно.
Мне бы хотелось поместить это во временные рамки, не превышающие более секунды.
Возможно ли это стандартными средствами ORM или надо писать равки?
Я посматриваю в сторону редис, но что-то боязно с ним, не работал и понимания того, как связать две дб между собой нет
а возможно ли это стандартными средствами без ORM хотя бы?
источник

A

Aquinary in Django [ru] #STAY HOME
Алексей
а возможно ли это стандартными средствами без ORM хотя бы?
Тоже интересно) Но для проверки придётся спускаться в недра SQL, как понимаю, в более глубокое болото, чем просто SELECT UPDATE)
источник

A

Aleksei in Django [ru] #STAY HOME
Aquinary
Есть что-то в рамках ORM более быстрое, чем bulk_update?
statistic_model = apps.get_model('user', 'StatisticModel')
statistics = statistic_model.objects.all()
# for ... на самом деле я опустил эту часть перед запуском и получил указанное ниже время
statistic_model.objects.bulk_update(statistics, [шесть полей])

Вот от сюда взял саму инфу
При 10к записях время выполнения кода ~ 20 секунд. Это лучше, чем просто .update и тем более save, но это всё ещё медленно.
Мне бы хотелось поместить это во временные рамки, не превышающие более секунды.
Возможно ли это стандартными средствами ORM или надо писать равки?
Я посматриваю в сторону редис, но что-то боязно с ним, не работал и понимания того, как связать две дб между собой нет
Попробуйте поставить batch_size поменьше, мб 1000-2000
источник

А

Алексей in Django [ru] #STAY HOME
Aleksei
Попробуйте поставить batch_size поменьше, мб 1000-2000
а как это время уменьшит?
источник

A

Andrey in Django [ru] #STAY HOME
Aquinary
Есть что-то в рамках ORM более быстрое, чем bulk_update?
statistic_model = apps.get_model('user', 'StatisticModel')
statistics = statistic_model.objects.all()
# for ... на самом деле я опустил эту часть перед запуском и получил указанное ниже время
statistic_model.objects.bulk_update(statistics, [шесть полей])

Вот от сюда взял саму инфу
При 10к записях время выполнения кода ~ 20 секунд. Это лучше, чем просто .update и тем более save, но это всё ещё медленно.
Мне бы хотелось поместить это во временные рамки, не превышающие более секунды.
Возможно ли это стандартными средствами ORM или надо писать равки?
Я посматриваю в сторону редис, но что-то боязно с ним, не работал и понимания того, как связать две дб между собой нет
Этот код где выполняется?
источник

A

Aquinary in Django [ru] #STAY HOME
Aleksei
Попробуйте поставить batch_size поменьше, мб 1000-2000
При 1000 в два раза быстрее стало
источник

A

Aleksei in Django [ru] #STAY HOME
Алексей
а как это время уменьшит?
Мб и не уменьшит, зависит от того как update в джанге работает. Я бы попробовал. А вообще стоит посмотреть сколько апдейт такого кол-ва записей занимает на чистом sql
источник

A

Aquinary in Django [ru] #STAY HOME
Andrey
Этот код где выполняется?
источник

A

Aleksei in Django [ru] #STAY HOME
Aquinary
При 1000 в два раза быстрее стало
Если сильно хочется, можно выдернуть bulk_update из джанги и переписать под себя с оптимизациями: попробовать отключить атомарность для каждого батча и т.п. Но идея ну так
источник

AG

Artem Gubatenko in Django [ru] #STAY HOME
Aquinary
Есть что-то в рамках ORM более быстрое, чем bulk_update?
statistic_model = apps.get_model('user', 'StatisticModel')
statistics = statistic_model.objects.all()
# for ... на самом деле я опустил эту часть перед запуском и получил указанное ниже время
statistic_model.objects.bulk_update(statistics, [шесть полей])

Вот от сюда взял саму инфу
При 10к записях время выполнения кода ~ 20 секунд. Это лучше, чем просто .update и тем более save, но это всё ещё медленно.
Мне бы хотелось поместить это во временные рамки, не превышающие более секунды.
Возможно ли это стандартными средствами ORM или надо писать равки?
Я посматриваю в сторону редис, но что-то боязно с ним, не работал и понимания того, как связать две дб между собой нет
а там разные данные для разных объектов?
источник

A

Aquinary in Django [ru] #STAY HOME
Artem Gubatenko
а там разные данные для разных объектов?
Decimal в основном и одно поле под DateTime
источник

А

Алексей in Django [ru] #STAY HOME
Aquinary
При 1000 в два раза быстрее стало
интересно, за счёт чего? там по умолчанию None, неужели тогда не вся портянка летит, а меньше 1000?
источник

AG

Artem Gubatenko in Django [ru] #STAY HOME
Aquinary
Decimal в основном и одно поле под DateTime
всмысле: всем объектам обновляешь несколько полей одинаковыми значениями?
источник

AG

Artem Gubatenko in Django [ru] #STAY HOME
Aquinary
Decimal в основном и одно поле под DateTime
т.е.: всем одинаковый Decimal, одинаковый Datetime и тд?
источник

A

Aleksei in Django [ru] #STAY HOME
Алексей
интересно, за счёт чего? там по умолчанию None, неужели тогда не вся портянка летит, а меньше 1000?
Летит вся. Проблема в том, что эта вся портянка завернута в атомарную транзакцию и такая большая оч долго жуется бд
источник