Скачать презентацию
Идет загрузка презентации. Пожалуйста, подождите
Презентация была опубликована 10 лет назад пользователемНикита Аношкин
1 Когда начинает трещать по швам Django ORM? Александр Миленко, июнь 2013, Мск skype: alexander.milenko
2 СРАЗУ!
3 ideя! – что за диковинка из глубинки?
5 5 интернет-магазинов в 4 областях просмотров в будни, около под НГ ежедневно 1 сервер для клиентов (i7-3930K x 12, 64GB DD3) 1 системный сервер (i x 8, 32GB DDR3) Анализ 90+ поставщиков и конкурентов (более 1кк номенклатуры) на совпадения, цены и др. радости. (менее 2 часов на всех) Актуальность учета остатков по 40 складам с отставанием в 15 минут от 1С Определение даты доставки с точностью до 10 минут
6 ideя! – что за диковинка из глубинки? 160 скриптов взаимодействия Обновление данных номенклатур по всем сайтам (140к позиций) менее чем за 80 секунд Построенный рабочий процесс: от работы контент-менеджеров (в том числе с подсчетом ЗП) до работы всех сопутствующих структур: call-центр, закуп, логистика, служба качества и т.д. Порядка 50 различных отчетов и собственные анализы поведений покупателей.
7 Выучить к школе:
8 3 года ошибок и побед. 1 класс. Оптимизация логики Первая рекламная акция – с 300 посетителей в день до Мы открываемся через раз! Фильтр в фильтре Много лишнего в запросе
9 3 года ошибок и побед. 1 класс. Оптимизация логики. Правим Предварительная подготовка данных.values() и.values_list() наши друзья Выкидываем лишнее из запроса
10 3 года ошибок и побед. 1 класс. Оптимизация логики. Итог ПараметрБылоСтало Товаров1000 штук Запросов2002 штук4 штуки Время исполнения9991 мс393 мс Мы начали открываться каждый раз, но все равно медленно
11 3 года ошибок и побед. 2 класс. Шаблоны – тихая лошадка Бестолковая магия – котел бежит за вами, но каши не варит. Красиво? – Да Функционально – не всегда Мы ускоряемся
12 3 года ошибок и побед. 3 класс. Кэширование Кэшировать все – зло!
13 3 года ошибок и побед. 3 класс. Кэширование Кэшировать все - зло! Не кэшировать – зло!
14 3 года ошибок и побед. 3 класс. Кэширование Кэшировать все - зло! Не кэшировать – зло! Кэшировать часть – зло!
15 3 года ошибок и побед. 3 класс. Кэширование Кэшировать все - зло! Не кэшировать – зло! Кэшировать часть – зло! Что делать??
16 3 года ошибок и побед. 3 класс. Кэширование Кэшировать все - зло! Не кэшировать – зло! Кэшировать часть – зло! Что делать?? Кэшировать!
17 3 года ошибок и побед. 3 класс. Кэширование Время кеширования – всегда меньше часа и всегда под контролем Актуальные данные – не кешируем, а выносим Инструменты для сброса всего кеша или его части Выбор формата данных в кеше Больше фрагментации – больше актуальности Гибридные ключи – вай-вай красота
18 3 года ошибок и побед. 3 класс 2 четверть. Вынос данных Много баз не бывает = MongoDB, Redis, Memcached Фильтры на сайте – платим производительностью за гибкость Включаем пыхтелку, начинаем подготавливать больше данных и переносить из MySQL в MongoDB Надежность != скорость MongoDB
19 3 года ошибок и побед. 3 класс. Итоги Мы взлетели
20 3 года ошибок и побед. 4 класс. Мы тормозим
21 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)
22 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) Мы опять взлетели :)
23 3 года ошибок и побед. 5 класс. Берем лопату Хватит мяться – в области больше одного города. Нам нужна доставка, наценка, СЕО и блекджек… Исходные данные vs. Правила исходных данных Идем на жертву производительности и…
24 3 года ошибок и побед. 5 класс. Берем лопату Хватит мяться – в области больше одного города. Нам нужна доставка, наценка, СЕО и блекджек… Исходные данные vs. Правила исходных данных Идем на жертву производительности и… выигрываем!
25 3 года ошибок и побед. 6 класс. Анализируй это Чудеса.values() DB vs. Python-lines Celery + CSV = счастье логистам
26 3 года ошибок и побед. 7 класс. Сравнение 1кк строк с 1кк строк 10 поставщиков – неделя одного сравнения. 20 поставщиков – что-то линейка товаров уже обновилась.. 21 поставщик – терпенье и труд – все перетрут 22 поставщика - понеслась:
27 3 года ошибок и побед. 7 класс. Сравнение 1кк строк с 1кк строк 10 поставщиков – неделя одного сравнения. 20 поставщиков – что-то линейка товаров уже обновилась.. 21 поставщик – терпенье и труд – все перетрут 22 поставщика - понеслась: –Подготовка данных – 15 минут –Поиск и сравнение – 30 минут (Левенштейн за бортом) –Привет конкурентам – вы под колпаком! ИТОГ: 91 поставщик, 25 минут подготовка, 2 часа сравнения
28 3 года ошибок и побед. 8 класс..select_related() и.prefetch_related() Зло Забыть Переписать …
29 3 года ошибок и побед. 8 класс..select_related() и.prefetch_related() Зло Забыть Переписать … Модели с большим количеством полей – основная проблема данной магии
30 3 года ошибок и побед. 9 класс. из 1С и в 1С – идеальный рецепт Избыточность Подготовка данных Анализ Транзакция Скорость, защита от потерь данных, возможность отката при отказе
31 3 года ошибок и побед. 10 класс. Ужасный порог в 1,5 секунды Откуда дровишки? Нужна ли жертва для поднятия производительности? Цена поднятия производительности до 0,03 секунд на страницу на 3х летнем проекте
32 3 года ошибок и побед. 11 класс. Выпускной Раз в неделю – ловим ботов
33 3 года ошибок и побед. 11 класс. Выпускной Раз в неделю – ловим ботов Именных ботов – кормим дезинформацией
34 3 года ошибок и побед. 11 класс. Выпускной Раз в неделю – ловим ботов Именных ботов – кормим дезинформацией Радуемся стабильным продажам
35 Высшая школа Если это не правда – то уж очень хорошо придумано… (с) итальянская поговорка Спасибо! Александр Миленко skype: alexander.milenko
Еще похожие презентации в нашем архиве:
© 2024 MyShared Inc.
All rights reserved.