django orm n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
????? ???????? ??????? ?? ???? Django ORM? PowerPoint Presentation
Download Presentation
????? ???????? ??????? ?? ???? Django ORM?

Loading in 2 Seconds...

play fullscreen
1 / 35

????? ???????? ??????? ?? ???? Django ORM? - PowerPoint PPT Presentation


  • 129 Views
  • Uploaded on

Когда начинает трещать по швам Django ORM?. Александр Миленко, июнь 2013, Мск e-mail: alvein.flea@gmail.com skype: alexander.milenko. СРАЗУ!. ide я! – что за диковинка из глубинки?. ide я! – что за диковинка из глубинки?. ide я! – что за диковинка из глубинки?.

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about '????? ???????? ??????? ?? ???? Django ORM?' - oren-hamilton


Download Now An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
django orm

Когда начинает трещать по швам Django ORM?

Александр Миленко, июнь 2013, Мск

e-mail: alvein.flea@gmail.com skype: alexander.milenko

slide5
ideя! – что за диковинка из глубинки?
  • 5 интернет-магазинов в 4 областях
  • 120 000 просмотров в будни, около 400 000 под НГ ежедневно
  • 1 сервер для клиентов (i7-3930K x 12, 64GB DD3)
  • 1 системный сервер (i7-2600 x 8, 32GB DDR3)
  • Анализ 90+ поставщиков и конкурентов (более 1кк номенклатуры) на совпадения, цены и др. радости. (менее 2 часов на всех)
  • Актуальность учета остатков по 40 складам с отставанием в 15 минут от 1С
  • Определение даты доставки с точностью до 10 минут
slide6
ideя! – что за диковинка из глубинки?
  • 160 скриптов взаимодействия
  • Обновление данных номенклатур по всем сайтам (140к позиций) менее чем за 80 секунд
  • Построенный рабочий процесс: от работы контент-менеджеров (в том числе с подсчетом ЗП) до работы всех сопутствующих структур: call-центр, закуп, логистика, служба качества и т.д.
  • Порядка 50 различных отчетов и собственные анализы поведений покупателей.
slide7
Выучить к школе:

http://bit.ly/109nXYX

slide8
3 года ошибок и побед.1 класс. Оптимизация логики
  • Первая рекламная акция – с 300 посетителей в день до 4000. Мы открываемся через раз!
  • Фильтр в фильтре
  • Много лишнего в запросе

http://pastebin.com/bfyH6MZm

slide9
3 года ошибок и побед.1 класс. Оптимизация логики. Правим
  • Предварительная подготовка данных
  • .values() и .values_list() наши друзья
  • Выкидываем лишнее из запроса

http://pastebin.com/bfyH6MZm

slide10
3 года ошибок и побед.1 класс. Оптимизация логики. Итог

Мы начали открываться каждый раз, но все равно медленно

slide11
3 года ошибок и побед.2 класс. Шаблоны – тихая лошадка
  • Бестолковая магия – котел бежит за вами, но каши не варит.
  • Красиво? – Да
  • Функционально – невсегда
  • Мы ускоряемся

http://pastebin.com/7ghQWmTv

slide12
3 года ошибок и побед.3 класс. Кэширование
  • Кэшировать все – зло!
slide13
3 года ошибок и побед.3 класс. Кэширование
  • Кэшировать все - зло!
  • Не кэшировать – зло!
slide14
3 года ошибок и побед.3 класс. Кэширование
  • Кэшировать все - зло!
  • Не кэшировать – зло!
  • Кэшировать часть – зло!
slide15
3 года ошибок и побед.3 класс. Кэширование
  • Кэшировать все - зло!
  • Не кэшировать – зло!
  • Кэшировать часть – зло!
  • Что делать??
slide16
3 года ошибок и побед.3 класс. Кэширование
  • Кэшировать все - зло!
  • Не кэшировать – зло!
  • Кэшировать часть – зло!
  • Что делать??
  • Кэшировать!
slide17
3 года ошибок и побед.3 класс. Кэширование
  • Время кеширования – всегда меньше часа и всегда под контролем
  • Актуальные данные – не кешируем, а выносим
  • Инструменты для сброса всего кеша или его части
  • Выбор формата данных в кеше
  • Больше фрагментации– больше актуальности
  • Гибридные ключи – вай-вай красота

http://pastebin.com/tGuWhWuy

3 3 2
3 года ошибок и побед.3 класс 2 четверть. Вынос данных
  • Много баз не бывает = MongoDB, Redis, Memcached
  • Фильтры на сайте – платим производительностью за гибкость
  • Включаем пыхтелку, начинаем подготавливать больше данных и переносить из MySQL в MongoDB
  • Надежность != скорость MongoDB
slide21
3 года ошибок и побед.4 класс. Грязные трюки
  • session.engine – rails
  • nginx backend node – more than 1 (URL, Server, Bot-s)
  • later – the best of the best of the best (c)
slide22
3 года ошибок и побед.4 класс. Грязные трюки
  • session.engine – rails
  • nginx backend node – more than 1 (URL, Server, Bot-s)
  • later – the best of the best of the best (c)
  • Мы опять взлетели :)
slide23
3 года ошибок и побед.5 класс. Берем лопату
  • Хватит мяться – в области больше одного города. Нам нужна доставка, наценка, СЕО и блекджек…
  • Исходные данные vs. Правила исходных данных
  • Идем на жертву производительности и…
slide24
3 года ошибок и побед.5 класс. Берем лопату
  • Хватит мяться – в области больше одного города. Нам нужна доставка, наценка, СЕО и блекджек…
  • Исходные данные vs. Правила исходных данных
  • Идем на жертву производительности и… выигрываем!
slide25
3 года ошибок и побед.6 класс. Анализируй это
  • Чудеса .values()
  • DB vs. Python-lines
  • Celery + CSV = счастье логистам
3 7 1 1
3 года ошибок и побед.7 класс. Сравнение 1кк строк с 1кк строк
  • 10 поставщиков – неделя одного сравнения.
  • 20 поставщиков – что-то линейка товаров уже обновилась..
  • 21 поставщик – терпенье и труд – все перетрут
  • 22 поставщика - понеслась:
3 7 1 11
3 года ошибок и побед.7 класс. Сравнение 1кк строк с 1кк строк
  • 10 поставщиков – неделя одного сравнения.
  • 20 поставщиков – что-то линейка товаров уже обновилась..
  • 21 поставщик – терпенье и труд – все перетрут
  • 22 поставщика - понеслась:
    • Подготовка данных – 15 минут
    • Поиск и сравнение – 30 минут (Левенштейн за бортом)
    • Привет конкурентам – вы под колпаком!
  • ИТОГ: 91 поставщик, 25 минут подготовка, 2 часа сравнения
3 8 select related prefetch related
3 года ошибок и побед.8 класс. .select_related() и .prefetch_related()
  • Зло
  • Забыть
  • Переписать
3 8 select related prefetch related1
3 года ошибок и побед.8 класс. .select_related() и .prefetch_related()
  • Зло
  • Забыть
  • Переписать
  • Модели с большим количеством полей – основная проблема данной магии

http://pastebin.com/prxnrdRR

3 9 1 1
3 года ошибок и побед.9 класс. из 1С и в 1С – идеальный рецепт
  • Избыточность
  • Подготовка данных
  • Анализ
  • Транзакция
  • Скорость, защита от потерь данных, возможность отката при отказе

http://pastebin.com/G0TEdA3R

3 10 1 5
3 года ошибок и побед.10 класс. Ужасный порог в 1,5 секунды
  • Откуда дровишки?
  • Нужна ли жертва для поднятия производительности?
  • Цена поднятия производительности до 0,03 секунд на страницу на 3х летнем проекте
slide32
3 года ошибок и побед.11 класс. Выпускной
  • Раз в неделю – ловим ботов
slide33
3 года ошибок и побед.11 класс. Выпускной
  • Раз в неделю – ловим ботов
  • Именных ботов – кормим дезинформацией
slide34
3 года ошибок и побед.11 класс. Выпускной
  • Раз в неделю – ловим ботов
  • Именных ботов – кормим дезинформацией
  • Радуемсястабильным продажам 
slide35
Высшая школа

Если это не правда – то уж очень хорошо придумано…

(с) итальянская поговорка

Спасибо!

Александр Миленко

alvein.flea@gmail.com

skype: alexander.milenko

+7 919 408 0178