Оптимизация производительности баз
2 subscribers
28 photos
2 videos
61 links
Download Telegram
EXPLAIN ANALYZE: как не перепутать медленный SQL с дорогим планом

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

Смотрите в первую очередь на три вещи:
— расхождение estimated rows и actual rows; если промах в разы, статистика или селективность врут
— узкие места по времени: Seq Scan, Sort, Hash Join, Nested Loop с большим числом повторов
— I/O и буферы: если все упирается в чтение с диска, индексы могут не спасти

Типовая ошибка — лечить верхний узел плана, когда проблема ниже. Если Nested Loop выглядит страшно, проверьте, что внутри: иногда один лишний Seq Scan на маленькой таблице дешевле, чем «красивый» индексный доступ с тысячами случайных чтений. Золотое правило: сначала мониторинг, потом индексы.

Схема простая, но дьявол кроется в статистике: хороший план на малых данных может развалиться на реальном объеме. Поэтому сравнивайте план с фактом после изменений в данных, а не только после правок SQL.

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

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

Перед изменением проверьте три вещи:
— профиль запросов: короткие транзакции, тяжёлые join’ы, сортировки, bulk-load;
— узкие места: CPU, RAM, диск, блокировки, сетевые ожидания;
— цену ошибки: сколько памяти съест буфер, как вырастет WAL/redo, что будет при рестарте.

Типовые ловушки: поднять кеш «побольше» без лимитов ОС; включить агрессивный параллелизм и получить драку за CPU; увеличить размер журнала и забыть про архивирование и место на диске. Схема простая, но дьявол кроется в статистике: без неё тюнинг превращается в шаманство с тяжелыми последствиями.

Меняйте один параметр за раз, фиксируйте исходное значение и сравнивайте не «ощущения», а план, latency и I/O. Золотое правило: сначала мониторинг, потом индексы. Тогда конфиг действительно помогает, а не маскирует проблему.
Forwarded from AFF.TOP
This media is not supported in your browser
VIEW IN TELEGRAM
OpenAI извинились за новый дизайн ChatGPT

OpenAI признала, что новый десктопный ChatGPT вышел перегруженным: слитые в один интерфейс Chat, Work и Codex запутали пользователей и раздули приложение почти в 10 раз. После хейта обновление откатили, а вывод простой: функции надо упаковывать в единый UX без лишнего шума, даже если это помогает росту базы.

➡️ Читайте на сайте: https://aff.top/blog/openai-izvinilis-za-novyi-dizain-chatgpt

🧠 Ещё больше инсайтов → в канале AFF.top
Forwarded from AFF.TOP
This media is not supported in your browser
VIEW IN TELEGRAM
ChatGPT 5.6 Luna и Terra подешевели

OpenAI резко снизила цены на GPT-5.6 Luna и Terra спустя три недели после релиза, сделав их заметно дешевле для массового использования. Sol осталась премиальной по прежнему прайсу, но получила Fast mode с ускорением до 2,5 раза. Вывод: компания давит ценой и скоростью, чтобы быстрее нарастить спрос и долю рынка.

➡️ Читайте на сайте: https://aff.top/blog/chatgpt-5-6-luna-i-terra-podesheveli

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

Verisign вывела .web в корневую зону DNS: теперь это полноценный TLD, но открытая регистрация ещё не стартовала. Сначала доступ получат владельцы совпадающих доменов в .com через LRP. Вывод для рынка: хорошие EMD в .com могут стать входным билетом в .web, если успеть занять брендовые имена раньше общего запуска.

➡️ Читайте на сайте: https://aff.top/blog/domennaia-zona-web-delegirovan-v-kornevuiu-zonu-dns

🧠 Ещё больше инсайтов → в канале AFF.top
Forwarded from ZM apps | Channel
🔥 Wheel Out уже доступна в ZM apps!

Новый instant-хит с простой и затягивающей механикой.

Игрок запускает колесо ➡️ ловит множители и выигрыши ➡️ ничего лишнего, только быстрый и динамичный геймплей.


Игра уже успела набрать популярность на рынках Индии и Пакистана благодаря высокой вовлеченности игроков, коротким игровым сессиям и яркой визуальной подаче.

INOUT GAMES выпускает хиты, а ZM apps первыми выдают под них прилы.

➡️ Забирай апки в боте ➡️ ZM_apps_bot
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from AffPapa! Клуб спящих бизнесменов! Потрачено!
🤨 Если в августе ты не льешь на Falling Pickaxe — кто-то другой заберет твои 2000$.

PoshFriends × Pixmove запускают жаркий турнир специально для УБТ-комьюнити.

⛏️ В центре внимания — виральная кирка Falling Pickaxe.

Что нужно сделать?

💥 Лить на Falling Pickaxe с 01.08 по 31.08
💥 Сделать 20+ FDT по RevShare 60% на медийном оффере JoyCasino
💥 Ворваться в топ лидерборда и забрать свой приз

🏆 Призовой фонд

🥇 1 место — $2,000
🥈 2 место — $1,000
🥉 3 место — $500
⚔️ 4–10 места — эксклюзивный мерч из коллаборации PoshFriends × Pixmove

Без сложных механик. Без лишних условий.

Только трафик → FD → лидерборд → призы.

📩 Готов залететь? 
Пиши менеджеру - @aleksandr1_poshfriends

Август пролетит быстро. Пока одни думают, другие уже забирают первые строчки лидерборда.

Не оставляй призовой фонд конкурентам. Забирай его себе. 🚀
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from AFF.TOP
This media is not supported in your browser
VIEW IN TELEGRAM
В Facebook Ads появился раздел «Conversations»

Facebook Ads добавил Conversations с автоответом на комментарии: по ключевым словам можно сразу отправлять сообщение в личку. Для арбитража это новый способ прогрева и передачи ссылки без клоаки: в креативе можно просить оставить комментарий, а заинтересованных уводить с вайта на блэк уже в ДМ. Идея спорная, но её стоит тестировать.

➡️ Читайте на сайте: https://aff.top/blog/v-facebook-ads-poiavilsia-razdel-conversations

🧠 Ещё больше инсайтов → в канале AFF.top
Миграция данных без простоя: где чаще всего ломают прод и как этого не допустить

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

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

Что проверять до переключения: наличие обратимого плана, время отката, блокировки на DDL/DML, зависимые сервисы и потребителей данных. Отдельно проверьте “тихие” места — очереди, кэши, фоновые джобы, отчеты. Именно они часто держат старую схему дольше, чем сама база.

Золотое правило: сначала мониторинг, потом индексы. Если нет метрик по лагу, ошибкам записи и времени ответов, вы не мигрируете, а надеетесь. А надежда в продакшене — это очень дорогой инструмент.
Сложный SQL не лечится «магией» — сначала разбираем план, потом уже переписываем запрос

Коллеги, давайте разберем план выполнения. У тяжелых запросов почти всегда одни и те же причины: лишний full scan, неверная селективность, неудачный join order, сортировка на диске.

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

Дальше режем запрос по слоям: убираем подзапросы, которые можно заменить join’ом или CTE только для читаемости; выносим фильтры как можно раньше; проверяем, не ломает ли функция в WHERE использование индекса. Если условие выглядит «удобно», но превращает поиск в скан — это плохое удобство.

Особое внимание — повторяющимся агрегациям, OR по разным полям и неявным преобразованиям типов. Именно они часто делают план нестабильным: на маленьком объеме все летает, на боевом — внезапно начинается I/O-ад. Посмотрим, что тут с I/O в реальности.

Золотое правило: сначала мониторинг, потом индексы. Если после переписывания запрос все еще тяжёлый, только тогда добавляем индекс под конкретный предикат и проверяем, не выросла ли цена записи и блокировок.