Оптимизация производительности баз
2 subscribers
24 photos
2 videos
56 links
Download Telegram
Forwarded from Я ЗЛОЙ, Я ГАНГСТА
Когда AffPapa попытались кикнуть Иванова из сферы, другие компании скинули ему $100к.

Как мы обсуждали вчера, овнер AffPapa взбесился на ЕЮ и пригрозил аффилке: AffPapa прекратят все формы сотрудничества с компаниями-партнёрами Иванова. Логика простая: мне приносит неудобства этот чел, значит, я сделаю так, чтобы с ним никто больше не работал, тем самым вытеснив его из сферы.

Будь это кто-то другой, идея, может, и сработала бы, но мы говорим о ЕЮ, который тут же понял кипиш. В ответ Алексеев закинул ему $5к с комментом «Кайфуй», а дальше к этому недо-флэшмобу подтянулись другие компании: $25к от Roi Media, $15к от TopX, $10к от GloryPartners, $7.5к от неизвестного Эдуарда, $7.5к от Кардиналов, $5.5к от некого Владимира. И вишенка на торте — $50к от «влиятельной iGaming фигуры, пожелавшей остаться анонимной».

Овнер AffPapa тем временем выдал жиденький ответ на ситуацию: они «не хотят ассоциироваться с брендами, поддерживающими площадки, построенные на срачах», но это не значит, что они прекращают сотрудничество со всеми вышеперечисленными конторами. Иначе говоря, чел понял, что не на того наехал, и быстро переобулся — у него тупо не было другого выбора.

🥴 — чего и следовало ожидать
🍾 — поздравляем ЕЮ с неожиданной премией )0

🎣Лей Fishing Time на TopX, участвуй в раздаче 1kk$ среди баеров и команд! Стань серьёзной iGaming-фигурой! 😎 Подробности ТУТ

😈 Я ЗЛОЙ, Я ГАНГСТА
Please open Telegram to view this post
VIEW IN TELEGRAM
Автобэкап без проверки восстановления — это не защита, а красивый ритуал

Коллеги, давайте разберем план выполнения. Автоматизация бэкапа должна отвечать на три вопроса: что копируем, куда кладем и как доказываем, что файл можно поднять. Если ответа нет хотя бы на один пункт — это не стратегия, а надежда на лучшее.

Базовый набор:
— полный бэкап + инкременты/диффы по понятной схеме;
— проверка контрольных сумм и успешной записи;
— ротация и удаление по политике, а не вручную;
— шифрование и раздельные права доступа;
— журнал ошибок с алертом, а не «посмотрим потом».

Посмотрим, что тут с I/O в реальности. Бэкап не должен душить рабочую нагрузку: ограничивайте параллелизм, окно запуска и скорость записи. Для больших баз отдельно планируйте логические и физические копии: одна нужна для быстрой выкладки, другая — для аварийного возврата. И обязательно тестируйте восстановление на стенде: из бэкапа, а не из «похоже, он валидный».

Самая частая ошибка — считать, что если задача отработала без ошибок, то все хорошо. Нет. Хорошая автоматизация заканчивается не созданием архива, а успешным restore с проверкой данных и времени восстановления. Золотое правило: сначала мониторинг, потом индексы. Но сначала — рабочий бэкап.
Partitioning не ускоряет всё подряд: сначала проверьте, зачем он вообще нужен

Коллеги, давайте разберем план выполнения. Секционирование полезно, когда запросы почти всегда бьют в узкий диапазон: по дате, статусу, региону. Тогда planner может отсечь лишние куски таблицы и читать меньше данных. Если же фильтр размазан, а ключ секции не совпадает с реальным паттерном доступа, вы просто получите больше объектов, больше статистики и больше сюрпризов.

Типовые ошибки:
— секционируют по колонке, по которой почти не фильтруют;
— делают слишком мелкие секции и потом тонут в накладных расходах;
— ждут, что partitioning заменит индекс. Не заменит;
— забывают про нагрузку на вставки, VACUUM/аналогичные процедуры и бэкапы.

Посмотрим, что тут с I/O в реальности. Секционирование помогает, когда есть partition pruning: запрос читает не всю таблицу, а только нужные секции. Но если в условии есть функция над ключом, неявное приведение типов или OR по разным диапазонам, отсечение может сломаться. В итоге план красивый, а диски всё равно греются.

Отдельно проверьте обслуживание: отдельные секции проще архивировать, удалять и перестраивать, но сложнее поддерживать единообразную статистику и одинаковые индексы. Схема простая, но дьявол кроется в статистике.

Золотое правило: сначала мониторинг, потом индексы. А потом уже решайте, нужен ли partitioning. Иначе вместо ускорения вы получите дорогую организацию хранения с теми же медленными запросами.
Forwarded from high profit — low life
Маэстро снова всех переиграл - будто по нотам блестяще выступил и остался с деньгами и респектом улиц

Че было?
Кто-то вспомнил про сообщество Affpapa - кто конкретно такие и чем занимаются кроме организации местечковых митапов, я не ебу, но пафоса как всегда много - доступ к серьезным iGaming фигурам у них только по подписке за 2100 евриков.

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

Но обиженный владелец папки пошел плакать в линкедине на тему того «какжи так, никогда такого не было и вот опять».
Также он пообещал всем брендам так или иначе связанным с Юрьичем (то есть 90% СНГ рынка) закрытие доступа к аффпапе и немедленное прекращение сотрудничества.

После этого ситуация плавно перетекла в iGaming Chat, где пошла настоящая возня - вместо НЕМЕДЛЕННОГО РАЗРЫВА С ОПОРОЧИВШИМ ИМЯ АФФПАПЫ, бренды предпочли поддержать Евгения вечнозелеными долларами и накидали ему под сто косых на ход ноги и новый контент, засветились PVT, Roimedia, Кардиналы, TopX и Glory, а также несколько анонимных iGaming-фигур.

Дальше - больше, обиженный владелец Аффпапки выступил с уже более жидкими заявлениями о том, что его не так поняли и что прекращать сотрудничество ни с кем пока не будут, просто советуют быть аккуратнее и бла-бла-бла.

Собственно, понятно что без топовых брендов, которые в том числе оплачивают существование Аффпапы вряд ли оно сможет фунциклировать.

Как и любой медийный конфликт - этот Евгений Юрьевич выиграл в одну калитку, прямо как Испания Аргентину вчера.

Мораль?
Не пиздите на маэстро.

High Profit — Low Life | Прислать сплетню
Forwarded from AFF.TOP
This media is not supported in your browser
VIEW IN TELEGRAM
X перезапустил прилу на Android

X.com не просто обновила приложение, а фактически пересобрала его вокруг скорости и синхронного запуска фич с iOS. Для арбитража это сигнал снова тестировать X Ads и УБТ-связки: платформа уходит от старого формата коротких постов к видео и стримам, а значит меняются охваты, креативы и точки входа в трафик.

➡️ Читайте на сайте: https://aff.top/blog/x-perezapustil-prilu-na-android

🧠 Ещё больше инсайтов → в канале AFF.top
Forwarded from AFF.TOP
This media is not supported in your browser
VIEW IN TELEGRAM
Meta внедряет ИИ-оптимизацию в Ads Manager

Meta постепенно вшивает ИИ-оптимизацию во все уровни Ads Manager: бюджет, аудиторию и креативы. Идея — автоматически перераспределять spend туда, где выше конверт и engagement. Для арбитража вывод простой: функции выглядят полезно, но их реальная эффективность пока не доказана, поэтому тестировать нужно в сравнении с ручными настройками.

➡️ Читайте на сайте: https://aff.top/blog/meta-vnedriaet-ii-optimizaciiu-v-ads-manager

🧠 Ещё больше инсайтов → в канале AFF.top
Пару дней назад в iGaming chat разыгралась история невероятной щедрости после попытки отмены Евгения Юрьевича. Если в трех словах, то Евгению Иванову «накидали» денег.

Редакции стало интересно, кто и сколько реально перевел. Полностью разобрали ситуацию, каждый платеж, получилось интересно.

По схеме переводов можно кликать. @cparip

https://cpa.rip/articles/unprecedented-generosity/

PS: За происходящим было интересно наблюдать, Евгений хорош)

Работаем с твоим трафиком до окупа. CPA/Spend/RS/Hybrid. Заливай с PIN-UP Partners на ЛатАм и СНГ
Please open Telegram to view this post
VIEW IN TELEGRAM
Мониторинг не лечит тормоза: как быстро найти узкое место в базе

Коллеги, давайте разберем план выполнения. Узкое место редко живет в одном месте: чаще это связка CPU, I/O, блокировки и плохой план. Поэтому первый шаг — не «добавить индекс», а посмотреть, где база реально тратит время: ожидание диска, конкуренция за latch, очередь на CPU или блокировки.

Рабочий порядок такой:
— сначала снимите топ ожиданий и утилизaцию ресурсов;
— потом найдите запросы с максимальным временем/логическими чтениями;
— отдельно проверьте блокировки и долгие транзакции;
— сравните план с фактом: если оценка резко расходится, виновата статистика или неудачный join.

Если запрос «тяжелый» только на бумаге, ищите селективность, перекос данных и сканы вместо seeks. Если система тормозит вся целиком, смотрите шире: переполненный пул соединений, очередь на запись, tempdb/temporary space, contention на горячих страницах. Схема простая, но дьявол кроется в статистике: один и тот же SQL может быть быстрым утром и мертвым под нагрузкой.

Золотое правило: сначала мониторинг, потом индексы. Иначе вы лечите симптом, а не bottleneck — и потом удивляетесь, почему «ускорение» добавило еще один дедлок.
Транзакции и изоляция: как не устроить блокировки, дедлоки и сюрпризы в проде

Коллеги, давайте разберем план выполнения. Транзакция — это не «обертка для красоты», а контракт: что видят другие сессии и как долго строки остаются занятыми. Чем выше уровень изоляции, тем меньше аномалий, но тем дороже это обычно обходится по блокировкам и конкуренции.

Базовые правила простые: не держите транзакцию дольше, чем нужно; не смешивайте внутри нее чтение, бизнес-логику и походы во внешний сервис; не делайте интерактивный ввод между BEGIN и COMMIT. Если в транзакции есть запросы к разным таблицам, фиксируйте порядок доступа — это снижает шанс дедлока. И да, «на всякий случай» открытая транзакция в приложении — это не осторожность, а лишний риск.

С уровнями изоляции тоже без магии: READ COMMITTED обычно дает нормальный баланс, но допускает неповторяемые чтения; REPEATABLE READ и SERIALIZABLE полезны там, где важна строгая консистентность, но они чаще упираются в блокировки и откаты. Если видите рост ожиданий, смотрите не только на уровень, но и на конкретные запросы, индексирование и объем затронутых строк. Золотое правило: сначала мониторинг, потом индексы.

Если нужна конкурентная обработка очередей, используйте паттерны вроде выборки «с блокировкой на взятие» и коротких транзакций. Для массовых изменений лучше дробить работу на пакеты, а не держать одну длинную транзакцию до победного конца. Схема простая, но дьявол кроется в статистике и времени удержания блокировок.

Сначала измерьте, где у вас реально висит lock wait, потом уже поднимайте изоляцию — иначе лечите не причину, а симптом.
Forwarded from AFF.TOP
This media is not supported in your browser
VIEW IN TELEGRAM
В РФ приняли закон о крипте: что он означает

Закон признал крипту имуществом, но запретил использовать её как платёж внутри России. Хранить можно, оплачивать товары и услуги нельзя, а обмен и обращение допустимы только через лицензированных операторов и в рамках внешнеторговых сделок. Для арбитража вывод простой: серые P2P-схемы под ударом, а легализация дохода возможна лишь через правила ЦБ и ФНС.

➡️ Читайте на сайте: https://aff.top/blog/v-rf-priniali-zakon-o-kripte-chto-on-oznachaet

🧠 Ещё больше инсайтов → в канале AFF.top
Forwarded from AFF.TOP
This media is not supported in your browser
VIEW IN TELEGRAM
Claude code теперь умеет запускать Ios-прилы

Anthropic превратила Claude Code Desktop в инструмент для сборки и отладки iOS-приложений прямо в симуляторе Apple. Claude видит интерфейс, читает экран и сразу вносит правки без computer use и разрешений на запись экрана. Для работы нужен Mac, Xcode и подписка Pro/Max/Team. Вывод: это удобный способ быстрее тестировать iOS-оферы и фичи.

➡️ Читайте на сайте: https://aff.top/blog/claude-code-teper-umeet-zapuskat-ios-prily

🧠 Ещё больше инсайтов → в канале AFF.top
Forwarded from AFF.TOP
This media is not supported in your browser
VIEW IN TELEGRAM
Open AI запустила рекламный сервис в ChatGPT

OpenAI запустила рекламу в ChatGPT: спонсорские блоки показываются в бесплатной версии и тарифе Go, а закупка идёт по CPM и CPC с бюджетом на уровне адсетов. Для арбитражников это пока дорогой тест: рекомендованный CPC $3–5, ограниченные гео, есть UTM и базовая статистика, но окупаемость под вопросом.

➡️ Читайте на сайте: https://aff.top/blog/open-ai-zapustila-reklamnyi-servis-v-chatgpt

🧠 Ещё больше инсайтов → в канале AFF.top
Partitioning помогает не ускорить всё подряд, а правильно ограничить объём работы

Коллеги, давайте разберем план выполнения. Секционирование полезно, когда запросы почти всегда бьют в узкий диапазон данных: по дате, региону, статусу. Тогда планировщик может отсечь лишние секции и читать меньше строк. Но если фильтр не совпадает с ключом секции, получите просто дорогую декорацию: таблица та же, только в разобранном виде.

Перед внедрением проверьте три вещи:
— есть ли стабильный критерий отсечения секций;
— совпадает ли он с типовыми WHERE/JOIN;
— не превратится ли обслуживание в ручной квест с сотней объектов.
Схема простая, но дьявол кроется в статистике: без неё оптимизатор легко выбирает полный проход по всем секциям, и весь смысл partition pruning испаряется.

Отдельно смотрите на DML. Массовые INSERT/UPDATE/DELETE по секционированной таблице часто упираются не в «скорость доступа», а в блокировки, локи на каталоги и накладные расходы на маршрутизацию строк. И да, глобальные индексы, если они есть, могут съесть часть выигрыша на записи и бэкапах.

Золотое правило: сначала мониторинг, потом индексы. Сначала измерьте, сколько запросов реально отсекают секции, сколько времени уходит на I/O и сколько стоит обслуживание. Если выигрыш неочевиден, partitioning лучше оставить как инструмент для жизненного цикла данных, а не как универсальное ускорение.
Сложный SQL ускоряют не магией, а разбором плана и лишних проходов

Коллеги, давайте разберем план выполнения. Сложный запрос почти всегда тормозит не из-за «тяжёлого SELECT», а из-за одной из трёх причин: лишний full scan, плохая селективность фильтра или многократный пересчёт одного и того же подзапроса.

Первый шаг — упростить форму запроса без изменения смысла: вытащить повторяющиеся выражения в CTE, убрать функции с полей в WHERE, проверить, не ломает ли OR использование индекса. Если условие можно переписать в sargable-вид, optimizer обычно благодарен.

Второй шаг — посмотреть, где утекает I/O в реальности: сортировки, hash join, temp tables, сканы больших таблиц. Часто помогает не «ещё один индекс», а правильный порядок соединений, ранняя фильтрация и отказ от лишних столбцов в SELECT. Да, `SELECT *` в проде — это не стиль, это лишняя работа для диска и памяти.

Третий шаг — проверить статистику и кардинальность. Схема простая, но дьявол кроется в статистике: если оценка строк мимо, план может выбрать худший путь и внезапно устроить дедлоки или долгие блокировки.

Золотое правило: сначала мониторинг, потом индексы. Смотрите на фактический план, а не на интуицию, и правьте не «запрос вообще», а конкретный узкий участок, который съедает время и I/O.
Forwarded from AFF.TOP
This media is not supported in your browser
VIEW IN TELEGRAM
Google выпустила новую Gemini 3.6 flash

Google выкатил новую линейку Gemini: 3.6 Flash стала основной моделью и выгоднее прошлой, при этом лучше в кодинге. 3.5 Flash-Lite — самая быстрая, подходит для рисёрча и анализа доков. Flash Cyber ориентирована на поиск уязвимостей, но доступна только в пилоте.

➡️ Читайте на сайте: https://aff.top/blog/google-vypustila-novuiu-gemini-3-6-flash

🧠 Ещё больше инсайтов → в канале AFF.top
Forwarded from AFF.TOP
This media is not supported in your browser
VIEW IN TELEGRAM
IOS 27 будут блокировать за долги

Apple готовит в iOS 27 механизм блокировки iPhone при просрочке по лизингу: часть функций останется доступной, чтобы можно было оплатить долг. Для CPA и партнёрского маркетинга это сигнал, что финтех и рассрочка всё глубже вшиваются в экосистему бренда, а доступ к устройству может зависеть от статуса договора.

➡️ Читайте на сайте: https://aff.top/blog/ios-27-budut-blokirovat-za-dolgi

🧠 Ещё больше инсайтов → в канале AFF.top