Вы когда организовываете конференции, вы не про кофе думайте, а про контент. Если бы просмотрели презентацию заранее и подготовились по таймингу, то поняли бы, что она часовая.
Спасибо за доклад, он хорош. Хотя, есть пара ошибок: 1) М2М связь Django создаёт уникальный составной индекс, в докладе утверждается иное; 2) Аргумент поля для создания модели называется db_index, а не index_db; 3) Докладчик рекомендует к использованию iterator, однако для psycopg2, драйвера, который мы все используем для постгреса, iterator не имеет смысла, поскольку сам драйвер кэширует результат.
Спасибо за замечания. Однако, итератор работает не на уровне драйвера, а на уровне ORM и с помощью него можно избежать создания экземпляров модели в памяти. А из бд все данные подтягиваются всегда (если не использовать streaming).
@@Bahusss Upd. Мне кажется, что Django ORM уже умеет работать через server-side cursor - docs.djangoproject.com/en/2.2/ref/models/querysets/#django.db.models.query.QuerySet.iterator
Спасибо, очень круто. Не понял, правда, почему prefetch_related так плох. Если дополнительный запрос генерит не так много данных, мне кажется, проще его использовать чем raw SQL
Доклад супер. Но удивило несколько, что скорость БД выше скорости питона, по части манипуляции с данными. Разные сложные решейпы и агрегации я делаю в pandas, загружая queryset в датафрейм, и не совсем понятно как in-memory обработка может быть медленней. Но я далеко не гуру.
Фишка в том, что pandas, numpy и пр. - расширения на C, которые работают напрямую с памятью, не создавая промежуточных python объектов. Так что скорость должна быть сравнима с БД. А вот если будете строки, которые обычные str сортировать или int, то тогда всё будет очень плохо.
Очень познавательно. Побольше бы таких докладов =) Да хрен с этим кофебрейком. Как будто каждый день такую инфу дают.
Вы когда организовываете конференции, вы не про кофе думайте, а про контент. Если бы просмотрели презентацию заранее и подготовились по таймингу, то поняли бы, что она часовая.
Жаль что не продолжили. Такой суперский докладчик и его так слили в конце! Печально, ребята!
офигенный доклад спасибо
Спасибо за доклад. Очень толково!
Спасибо за доклад, он хорош. Хотя, есть пара ошибок:
1) М2М связь Django создаёт уникальный составной индекс, в докладе утверждается иное;
2) Аргумент поля для создания модели называется db_index, а не index_db;
3) Докладчик рекомендует к использованию iterator, однако для psycopg2, драйвера, который мы все используем для постгреса, iterator не имеет смысла, поскольку сам драйвер кэширует результат.
Спасибо за замечания. Однако, итератор работает не на уровне драйвера, а на уровне ORM и с помощью него можно избежать создания экземпляров модели в памяти. А из бд все данные подтягиваются всегда (если не использовать streaming).
Ух ты, вот это вы меня обрадовали.
@@Bahusss Upd. Мне кажется, что Django ORM уже умеет работать через server-side cursor - docs.djangoproject.com/en/2.2/ref/models/querysets/#django.db.models.query.QuerySet.iterator
Спасибо, очень круто.
Не понял, правда, почему prefetch_related так плох. Если дополнительный запрос генерит не так много данных, мне кажется, проще его использовать чем raw SQL
огонь
докладчик молодец )) хотя я хз что такое ORM ))
и что юзать тогда вместо order_by("?")
создай масив с полями таблицы, в пайтоне импортируй рандом, а в ордер уже закидуй рандомное поле с твоего массива
@@kostyaminkov5659 ну такое себе решение
from django.db.models.functions import Random
random_records = YourModel.objects.annotate(random_number=Random()).order_by('random_number')
Доклад супер. Но удивило несколько, что скорость БД выше скорости питона, по части манипуляции с данными. Разные сложные решейпы и агрегации я делаю в pandas, загружая queryset в датафрейм, и не совсем понятно как in-memory обработка может быть медленней. Но я далеко не гуру.
Фишка в том, что pandas, numpy и пр. - расширения на C, которые работают напрямую с памятью, не создавая промежуточных python объектов. Так что скорость должна быть сравнима с БД. А вот если будете строки, которые обычные str сортировать или int, то тогда всё будет очень плохо.
@@TyVik с этим согласен
Зздззз
хранить деньги в decimal field ? он серьезно ?
почему нет?
@@Furkas91 в долларах надо хранить!