Сложный SQL ускоряют не магией, а разбором плана и лишних проходов
Коллеги, давайте разберем план выполнения. Сложный запрос почти всегда тормозит не из-за «тяжёлого SELECT», а из-за одной из трёх причин: лишний full scan, плохая селективность фильтра или многократный пересчёт одного и того же подзапроса.
Первый шаг — упростить форму запроса без изменения смысла: вытащить повторяющиеся выражения в CTE, убрать функции с полей в WHERE, проверить, не ломает ли OR использование индекса. Если условие можно переписать в sargable-вид, optimizer обычно благодарен.
Второй шаг — посмотреть, где утекает I/O в реальности: сортировки, hash join, temp tables, сканы больших таблиц. Часто помогает не «ещё один индекс», а правильный порядок соединений, ранняя фильтрация и отказ от лишних столбцов в SELECT. Да, `SELECT *` в проде — это не стиль, это лишняя работа для диска и памяти.
Третий шаг — проверить статистику и кардинальность. Схема простая, но дьявол кроется в статистике: если оценка строк мимо, план может выбрать худший путь и внезапно устроить дедлоки или долгие блокировки.
Золотое правило: сначала мониторинг, потом индексы. Смотрите на фактический план, а не на интуицию, и правьте не «запрос вообще», а конкретный узкий участок, который съедает время и I/O.
Коллеги, давайте разберем план выполнения. Сложный запрос почти всегда тормозит не из-за «тяжёлого 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
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
Apple готовит в iOS 27 механизм блокировки iPhone при просрочке по лизингу: часть функций останется доступной, чтобы можно было оплатить долг. Для CPA и партнёрского маркетинга это сигнал, что финтех и рассрочка всё глубже вшиваются в экосистему бренда, а доступ к устройству может зависеть от статуса договора.
➡️ Читайте на сайте: https://aff.top/blog/ios-27-budut-blokirovat-za-dolgi
🧠 Ещё больше инсайтов → в канале AFF.top
Forwarded from AFF.TOP
This media is not supported in your browser
VIEW IN TELEGRAM
Meta разрабатывает приложение для сочинения сказок
Meta тестирует AI-приложение для создания детских сказок: пользователь задаёт героя, мир и мораль, а нейросеть сама пишет текст, рисует иллюстрации и добавляет музыку. Это шаг к массовой генерации контента, где качество, персонализация и скорость важнее ручной работы — а для арбитража и CPA это ещё один инструмент, ускоряющий упаковку креативов и кейсов.
➡️ Читайте на сайте: https://aff.top/blog/meta-razrabatyvaet-prilozhenie-dlia-sochineniia-skazok
🧠 Ещё больше инсайтов → в канале AFF.top
Meta тестирует AI-приложение для создания детских сказок: пользователь задаёт героя, мир и мораль, а нейросеть сама пишет текст, рисует иллюстрации и добавляет музыку. Это шаг к массовой генерации контента, где качество, персонализация и скорость важнее ручной работы — а для арбитража и CPA это ещё один инструмент, ускоряющий упаковку креативов и кейсов.
➡️ Читайте на сайте: https://aff.top/blog/meta-razrabatyvaet-prilozhenie-dlia-sochineniia-skazok
🧠 Ещё больше инсайтов → в канале AFF.top
Partitioning не ускоряет всё подряд: сначала проверьте, зачем он вообще нужен
Коллеги, давайте разберем план выполнения. Секционирование полезно, когда запросы почти всегда бьют в узкий диапазон: по дате, статусу, региону. Тогда planner может отсечь лишние куски таблицы и читать меньше данных. Если же фильтр размазан, а ключ секции не совпадает с реальным паттерном доступа, вы просто получите больше объектов, больше статистики и больше сюрпризов.
Типовые ошибки:
— секционируют по колонке, по которой почти не фильтруют;
— делают слишком мелкие секции и потом тонут в накладных расходах;
— ждут, что partitioning заменит индекс. Не заменит;
— забывают про нагрузку на вставки, VACUUM/аналогичные процедуры и бэкапы.
Посмотрим, что тут с I/O в реальности. Секционирование помогает, когда есть partition pruning: запрос читает не всю таблицу, а только нужные секции. Но если в условии есть функция над ключом, неявное приведение типов или OR по разным диапазонам, отсечение может сломаться. В итоге план красивый, а диски всё равно греются.
Отдельно проверьте обслуживание: отдельные секции проще архивировать, удалять и перестраивать, но сложнее поддерживать единообразную статистику и одинаковые индексы. Схема простая, но дьявол кроется в статистике.
Золотое правило: сначала мониторинг, потом индексы. А потом уже решайте, нужен ли partitioning. Иначе вместо ускорения вы получите дорогую организацию хранения с теми же медленными запросами.
Коллеги, давайте разберем план выполнения. Секционирование полезно, когда запросы почти всегда бьют в узкий диапазон: по дате, статусу, региону. Тогда planner может отсечь лишние куски таблицы и читать меньше данных. Если же фильтр размазан, а ключ секции не совпадает с реальным паттерном доступа, вы просто получите больше объектов, больше статистики и больше сюрпризов.
Типовые ошибки:
— секционируют по колонке, по которой почти не фильтруют;
— делают слишком мелкие секции и потом тонут в накладных расходах;
— ждут, что partitioning заменит индекс. Не заменит;
— забывают про нагрузку на вставки, VACUUM/аналогичные процедуры и бэкапы.
Посмотрим, что тут с I/O в реальности. Секционирование помогает, когда есть partition pruning: запрос читает не всю таблицу, а только нужные секции. Но если в условии есть функция над ключом, неявное приведение типов или OR по разным диапазонам, отсечение может сломаться. В итоге план красивый, а диски всё равно греются.
Отдельно проверьте обслуживание: отдельные секции проще архивировать, удалять и перестраивать, но сложнее поддерживать единообразную статистику и одинаковые индексы. Схема простая, но дьявол кроется в статистике.
Золотое правило: сначала мониторинг, потом индексы. А потом уже решайте, нужен ли partitioning. Иначе вместо ускорения вы получите дорогую организацию хранения с теми же медленными запросами.
Настройка параметров БД: как не ускорить одно место и не убить всё остальное
Коллеги, давайте разберем план выполнения. Большинство «тюнинга» начинается с плохой идеи: выкрутить все параметры в максимум. В итоге БД не быстрее, а просто голоднее по памяти, I/O и CPU.
Рабочий порядок такой:
— сначала смотрим нагрузку: top запросы, ожидания, блокировки, cache hit, temp/undo, WAL/redo;
— потом ищем узкое место: память, диск, соединения, параллелизм, журналирование;
— только затем меняем один параметр за раз и фиксируем эффект.
Типовые ошибки:
— увеличили кэш, не оставив памяти ОС и соседним процессам;
— подняли число воркеров, не проверив контеншн на CPU и диск;
— отключили синхронность/безопасность ради «быстрее», а потом ловят сюрпризы при сбое.
Схема простая, но дьявол кроется в статистике. Если нет базовой линии, вы не поймёте, помог параметр или просто совпало с более лёгкой нагрузкой.
Золотое правило: сначала мониторинг, потом индексы. А для конфигурации — сначала измерение, потом одно изменение, потом повторная проверка на той же нагрузке.
Коллеги, давайте разберем план выполнения. Большинство «тюнинга» начинается с плохой идеи: выкрутить все параметры в максимум. В итоге БД не быстрее, а просто голоднее по памяти, I/O и CPU.
Рабочий порядок такой:
— сначала смотрим нагрузку: top запросы, ожидания, блокировки, cache hit, temp/undo, WAL/redo;
— потом ищем узкое место: память, диск, соединения, параллелизм, журналирование;
— только затем меняем один параметр за раз и фиксируем эффект.
Типовые ошибки:
— увеличили кэш, не оставив памяти ОС и соседним процессам;
— подняли число воркеров, не проверив контеншн на CPU и диск;
— отключили синхронность/безопасность ради «быстрее», а потом ловят сюрпризы при сбое.
Схема простая, но дьявол кроется в статистике. Если нет базовой линии, вы не поймёте, помог параметр или просто совпало с более лёгкой нагрузкой.
Золотое правило: сначала мониторинг, потом индексы. А для конфигурации — сначала измерение, потом одно изменение, потом повторная проверка на той же нагрузке.
Forwarded from AFF.TOP
This media is not supported in your browser
VIEW IN TELEGRAM
Google добавил вход по видеоселфи
Google тестирует вход по видеоселфи вместо пароля и 2FA: пользователь записывает короткое видео, а потом система сверяет лицо при авторизации. Это упрощает доступ, но вызывает вопросы к антифроду и защите от дипфейков. Функция доступна не всем и не работает для Workspace, детских аккаунтов и Advanced Protection.
➡️ Читайте на сайте: https://aff.top/blog/google-dobavil-vkhod-po-videoselfi
🧠 Ещё больше инсайтов → в канале AFF.top
Google тестирует вход по видеоселфи вместо пароля и 2FA: пользователь записывает короткое видео, а потом система сверяет лицо при авторизации. Это упрощает доступ, но вызывает вопросы к антифроду и защите от дипфейков. Функция доступна не всем и не работает для Workspace, детских аккаунтов и Advanced Protection.
➡️ Читайте на сайте: https://aff.top/blog/google-dobavil-vkhod-po-videoselfi
🧠 Ещё больше инсайтов → в канале AFF.top
Forwarded from AffPapa! Клуб спящих бизнесменов! Потрачено!
Как 🇪🇬 🇪🇨 🇩🇴 🇩🇲 первыми собрали собственную армию AI-креаторов и вышли на monthly spend свыше 💵 500 000
Дорогие коллеги и партнёры,
⚡️ За последние годы creator economy стала одним из самых обсуждаемых направлений на рынке. Для нас она стала полноценным продуктом.
🏆 JoyCasino первыми запустили партнёрскую программу по монетизации AI-контента с прямой оплатой за результат. За несколько лет эксперимент превратился в собственное комьюнити креаторов с Monthly spend свыше $500 000, а общие инвестиции в Joy Content Academy превысили $2 млн.
📌 Сегодня это не только контент, но и полноценная внутренняя экосистема: турниры, персонажи и идеи из роликов стали частью самого продукта.💪 Получился редкий для iGaming кейс, когда новый формат удалось превратить в масштабируемый канал привлечения и вовлечения аудитории.
Подробнее о проекте👉 joycontent.academy
Задаём тренды на рынке с 2014 года. Дальше — больше.
Дорогие коллеги и партнёры,
📌 Сегодня это не только контент, но и полноценная внутренняя экосистема: турниры, персонажи и идеи из роликов стали частью самого продукта.
Подробнее о проекте
Задаём тренды на рынке с 2014 года. Дальше — больше.
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
Alibaba выпустили в паблик Qwen-image-3.0
Qwen-image-3.0 делает упор не на «красивую картинку», а на прикладные задачи: длинные промпты, сложные макеты, текст, формулы и 12 языков. Это удобный инструмент для массовой генерации простых визуалов, но пока без open-source весов и бенчей он не выглядит заменой GPT Image 2 или Nano Banana 2.
➡️ Читайте на сайте: https://aff.top/blog/alibaba-vypustili-v-pablik-qwen-image-3-0
🧠 Ещё больше инсайтов → в канале AFF.top
Qwen-image-3.0 делает упор не на «красивую картинку», а на прикладные задачи: длинные промпты, сложные макеты, текст, формулы и 12 языков. Это удобный инструмент для массовой генерации простых визуалов, но пока без open-source весов и бенчей он не выглядит заменой GPT Image 2 или Nano Banana 2.
➡️ Читайте на сайте: https://aff.top/blog/alibaba-vypustili-v-pablik-qwen-image-3-0
🧠 Ещё больше инсайтов → в канале AFF.top
Forwarded from AffPapa! Клуб спящих бизнесменов! Потрачено!
Как баинговой команде снизить косты на запуск и найти новые точки роста?
adskill - рекламная инфраструктура для стабильной работы performance-команд. Специально на этот квартал мы подготовили пакет кастомных условий для медиабайеров, инхаус-команд брендов и digital-агентств:
🔥 TikTok под 0% комиссии - запуск и ведение кампаний без сервисных сборов до конца квартала.
🔥 YanGo под 0% комиссии - выдача аккаунтов менее чем за 1 день и быстрое пополнение баланса.
🔥 Оптимизация НДС на Facebook - помогаем настроить кампании с учетом нового налогового законодательства на некоторых ГЕО.
⚡️ Доступ к Bing и Bidease - редкие альтернативные источники трафика для масштабирования
💳 Агентское вознаграждение - возвращаем часть затрат от рекламного спенда.
Почему крупные команды выбирают adskill:
🔹 Полная свобода: Отсутствуют лимиты на спенд и количество создаваемых аккаунтов.
🔹 Удобные расчеты: Гибкие мультивалютные решения и кастомные платежные шлюзы под каждый проект.
🔹 Единый баланс: Быстрый перенос оборотного бюджета между 20+ площадками.
🔹 Безопасность капитала: Whitelisted-аккаунты, приоритетная модерация и оперативный возврат средств на баланс в случае блокировок.
Масштабируйте performance-кампании, используя готовую инфраструктуру и прямые партнерские условия adskill.
Написать менеджеру и уточнить доступные способы расчетов:👉 @adskill_sales_o_bot
adskill - рекламная инфраструктура для стабильной работы performance-команд. Специально на этот квартал мы подготовили пакет кастомных условий для медиабайеров, инхаус-команд брендов и digital-агентств:
🔥 TikTok под 0% комиссии - запуск и ведение кампаний без сервисных сборов до конца квартала.
🔥 YanGo под 0% комиссии - выдача аккаунтов менее чем за 1 день и быстрое пополнение баланса.
🔥 Оптимизация НДС на Facebook - помогаем настроить кампании с учетом нового налогового законодательства на некоторых ГЕО.
⚡️ Доступ к Bing и Bidease - редкие альтернативные источники трафика для масштабирования
💳 Агентское вознаграждение - возвращаем часть затрат от рекламного спенда.
Почему крупные команды выбирают adskill:
🔹 Полная свобода: Отсутствуют лимиты на спенд и количество создаваемых аккаунтов.
🔹 Удобные расчеты: Гибкие мультивалютные решения и кастомные платежные шлюзы под каждый проект.
🔹 Единый баланс: Быстрый перенос оборотного бюджета между 20+ площадками.
🔹 Безопасность капитала: Whitelisted-аккаунты, приоритетная модерация и оперативный возврат средств на баланс в случае блокировок.
Масштабируйте performance-кампании, используя готовую инфраструктуру и прямые партнерские условия adskill.
Написать менеджеру и уточнить доступные способы расчетов:👉 @adskill_sales_o_bot
Forwarded from AFF.TOP
This media is not supported in your browser
VIEW IN TELEGRAM
Яндекс тестирует объединение цифровой и наружной рекламы
Яндекс тестирует «Панораму» — единый формат для digital и наружной рекламы с «умным» охватом, который учитывает пересечение аудиторий и снижает частоту показов. Для рекламодателей это шанс расширить reach до 120 млн пользователей и протестировать новые placements, но в паблик-фазе важно смотреть на цену охвата и качество трафика.
➡️ Читайте на сайте: https://aff.top/blog/iandeks-testiruet-obedinenie-cifrovoi-i-naruzhnoi-reklamy
🧠 Ещё больше инсайтов → в канале AFF.top
Яндекс тестирует «Панораму» — единый формат для digital и наружной рекламы с «умным» охватом, который учитывает пересечение аудиторий и снижает частоту показов. Для рекламодателей это шанс расширить reach до 120 млн пользователей и протестировать новые placements, но в паблик-фазе важно смотреть на цену охвата и качество трафика.
➡️ Читайте на сайте: https://aff.top/blog/iandeks-testiruet-obedinenie-cifrovoi-i-naruzhnoi-reklamy
🧠 Ещё больше инсайтов → в канале AFF.top
EXPLAIN ANALYZE: как читать план, чтобы не лечить запрос наугад
Коллеги, давайте разберем план выполнения. EXPLAIN показывает, что задумал оптимизатор, а ANALYZE — что реально произошло. Сравнивайте оба слоя: если оценка строк сильно расходится с фактом, проблема часто не в «медленном сервере», а в статистике или неверном фильтре.
Смотрите не только на общий time. Важнее: — где растет разница между planned rows и actual rows; — какие узлы дают много loops; — есть ли Seq Scan там, где ожидали Index Scan; — не съедает ли Nested Loop огромный внутренний объем. Схема простая, но дьявол кроется в статистике.
Посмотрим, что тут с I/O в реальности. Если в плане высокий time, но мало actual rows, ищите блокировки, холодный кэш, сортировки на диск и лишние передачи данных между узлами. Если узел «дорогой» только на бумаге, а по факту дешёвый — не спешите менять индекс: сначала проверьте селективность условий и актуальность статистики.
Не лечите верхний узел, пока не нашли источник перекоса ниже по дереву. Обычно полезнее всего открыть самый медленный подузел, понять, почему он стал таким, и уже потом решать: переписать запрос, обновить статистику или добавить индекс. Золотое правило: сначала мониторинг, потом индексы.
Коллеги, давайте разберем план выполнения. EXPLAIN показывает, что задумал оптимизатор, а ANALYZE — что реально произошло. Сравнивайте оба слоя: если оценка строк сильно расходится с фактом, проблема часто не в «медленном сервере», а в статистике или неверном фильтре.
Смотрите не только на общий time. Важнее: — где растет разница между planned rows и actual rows; — какие узлы дают много loops; — есть ли Seq Scan там, где ожидали Index Scan; — не съедает ли Nested Loop огромный внутренний объем. Схема простая, но дьявол кроется в статистике.
Посмотрим, что тут с I/O в реальности. Если в плане высокий time, но мало actual rows, ищите блокировки, холодный кэш, сортировки на диск и лишние передачи данных между узлами. Если узел «дорогой» только на бумаге, а по факту дешёвый — не спешите менять индекс: сначала проверьте селективность условий и актуальность статистики.
Не лечите верхний узел, пока не нашли источник перекоса ниже по дереву. Обычно полезнее всего открыть самый медленный подузел, понять, почему он стал таким, и уже потом решать: переписать запрос, обновить статистику или добавить индекс. Золотое правило: сначала мониторинг, потом индексы.
Мониторинг не лечит тормоза: как быстро найти узкое место в базе
Коллеги, давайте разберем план выполнения. Узкое место редко живет в одном месте: чаще это связка CPU, I/O, блокировки и плохой план. Поэтому первый шаг — не «добавить индекс», а посмотреть, где база реально тратит время: ожидание диска, конкуренция за latch, очередь на CPU или блокировки.
Рабочий порядок такой:
— сначала снимите топ ожиданий и утилизaцию ресурсов;
— потом найдите запросы с максимальным временем/логическими чтениями;
— отдельно проверьте блокировки и долгие транзакции;
— сравните план с фактом: если оценка резко расходится, виновата статистика или неудачный join.
Если запрос «тяжелый» только на бумаге, ищите селективность, перекос данных и сканы вместо seeks. Если система тормозит вся целиком, смотрите шире: переполненный пул соединений, очередь на запись, tempdb/temporary space, contention на горячих страницах. Схема простая, но дьявол кроется в статистике: один и тот же SQL может быть быстрым утром и мертвым под нагрузкой.
Золотое правило: сначала мониторинг, потом индексы. Иначе вы лечите симптом, а не bottleneck — и потом удивляетесь, почему «ускорение» добавило еще один дедлок.
Коллеги, давайте разберем план выполнения. Узкое место редко живет в одном месте: чаще это связка CPU, I/O, блокировки и плохой план. Поэтому первый шаг — не «добавить индекс», а посмотреть, где база реально тратит время: ожидание диска, конкуренция за latch, очередь на CPU или блокировки.
Рабочий порядок такой:
— сначала снимите топ ожиданий и утилизaцию ресурсов;
— потом найдите запросы с максимальным временем/логическими чтениями;
— отдельно проверьте блокировки и долгие транзакции;
— сравните план с фактом: если оценка резко расходится, виновата статистика или неудачный join.
Если запрос «тяжелый» только на бумаге, ищите селективность, перекос данных и сканы вместо seeks. Если система тормозит вся целиком, смотрите шире: переполненный пул соединений, очередь на запись, tempdb/temporary space, contention на горячих страницах. Схема простая, но дьявол кроется в статистике: один и тот же SQL может быть быстрым утром и мертвым под нагрузкой.
Золотое правило: сначала мониторинг, потом индексы. Иначе вы лечите симптом, а не bottleneck — и потом удивляетесь, почему «ускорение» добавило еще один дедлок.
Forwarded from AffPapa! Клуб спящих бизнесменов! Потрачено!
Самое время начать игру с преимуществом:
Не откладывай удачу на потом — активируй бонус и сделай первый шаг к большим победам.
Самое время начать игру с преимуществом:
Не откладывай удачу на потом — активируй бонус и сделай первый шаг к большим победам!
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Vision Browser Новости
This media is not supported in your browser
VIEW IN TELEGRAM
Мигрируй с Indigo Browser с максимальной выгодой!
⏳ 31 августа 2026 года Indigo Browser официально прекращает работу. Всех пользователей безальтернативно переведут в Multilogin — хотите вы этого или нет.
В красивых словах про «общее будущее» и «единую технологию» легко не заметить главное: продукт, который выбирали пользователи, больше не будет развиваться самостоятельно и полностью исчезнет.
Наша команда уверена, что хорошие проекты не закрываются и не продаются — они сохраняют независимость, растут и становятся лучше.
Если не хочешь быть частью этой вынужденной меры и мигрировать в откровенно слабое и устаревшее решение — команда✌️ Vision рада предложить альтернативу.
✅ Мы полностью компенсируем стоимость текущего тарифа Indigo.
✅ Поможем с переносом всех данных и профилей.
✅ Дадим поддержку и быстрый старт в Vision.
Не трать деньги на браузер, который уже списали в архив. Переезжай туда, где продукт делают для пользователей, а не ради выгодных сделок.
📩 Напиши кодовое слово «RIPINDIGO» в наш саппорт на сайте или в официальном боте поддержки — и мы оформим компенсацию тарифа и поможем быстро перенести все данные.
Срок действия предложения - до 19:00 31.08.2026 (GMT+3)
Условия акции
⏳ 31 августа 2026 года Indigo Browser официально прекращает работу. Всех пользователей безальтернативно переведут в Multilogin — хотите вы этого или нет.
В красивых словах про «общее будущее» и «единую технологию» легко не заметить главное: продукт, который выбирали пользователи, больше не будет развиваться самостоятельно и полностью исчезнет.
Наша команда уверена, что хорошие проекты не закрываются и не продаются — они сохраняют независимость, растут и становятся лучше.
Если не хочешь быть частью этой вынужденной меры и мигрировать в откровенно слабое и устаревшее решение — команда
✅ Мы полностью компенсируем стоимость текущего тарифа Indigo.
✅ Поможем с переносом всех данных и профилей.
✅ Дадим поддержку и быстрый старт в Vision.
Не трать деньги на браузер, который уже списали в архив. Переезжай туда, где продукт делают для пользователей, а не ради выгодных сделок.
📩 Напиши кодовое слово «RIPINDIGO» в наш саппорт на сайте или в официальном боте поддержки — и мы оформим компенсацию тарифа и поможем быстро перенести все данные.
Срок действия предложения - до 19:00 31.08.2026 (GMT+3)
Условия акции
Please open Telegram to view this post
VIEW IN TELEGRAM
Индексы без плана — это ускоритель SELECT и тормоз для записи
Коллеги, давайте разберем план выполнения. Индекс нужен не «на всё подряд», а под конкретный профиль запросов. Сначала смотрим, где реально тратится время: full scan, сортировки, nested loop с лишними чтениями, блокировки на записи. Золотое правило: сначала мониторинг, потом индексы.
Базовая схема простая: • equality-предикаты — в начало составного индекса; • диапазоны — после точных условий; • сортировку покрывать только если она часто в критичном запросе; • не дублировать индексы с одинаковым префиксом. Иначе получите лишний I/O, рост времени на INSERT/UPDATE и веселую жизнь при перестроении.
Отдельно смотрите на селективность. Индекс по колонке с низкой кардинальностью часто бесполезен: оптимизатор может выбрать scan, и будет прав. Для частичных выборок лучше работает составной или фильтрованный индекс, чем один «широкий» на все случаи. Схема простая, но дьявол кроется в статистике.
Плохой паттерн — много индексов «на всякий случай». В продакшене так лучше не делать, и вот почему: каждый лишний индекс = лишняя запись, больше блокировок и тяжелее обслуживание. Нормальная стратегия — оставить 2–4 реально используемых индекса на таблицу, регулярно проверять неиспользуемые и пересматривать их по логам запросов.
Если индекс не объясняется конкретным запросом и его планом — его, скорее всего, не должно быть.
Коллеги, давайте разберем план выполнения. Индекс нужен не «на всё подряд», а под конкретный профиль запросов. Сначала смотрим, где реально тратится время: full scan, сортировки, nested loop с лишними чтениями, блокировки на записи. Золотое правило: сначала мониторинг, потом индексы.
Базовая схема простая: • equality-предикаты — в начало составного индекса; • диапазоны — после точных условий; • сортировку покрывать только если она часто в критичном запросе; • не дублировать индексы с одинаковым префиксом. Иначе получите лишний I/O, рост времени на INSERT/UPDATE и веселую жизнь при перестроении.
Отдельно смотрите на селективность. Индекс по колонке с низкой кардинальностью часто бесполезен: оптимизатор может выбрать scan, и будет прав. Для частичных выборок лучше работает составной или фильтрованный индекс, чем один «широкий» на все случаи. Схема простая, но дьявол кроется в статистике.
Плохой паттерн — много индексов «на всякий случай». В продакшене так лучше не делать, и вот почему: каждый лишний индекс = лишняя запись, больше блокировок и тяжелее обслуживание. Нормальная стратегия — оставить 2–4 реально используемых индекса на таблицу, регулярно проверять неиспользуемые и пересматривать их по логам запросов.
Если индекс не объясняется конкретным запросом и его планом — его, скорее всего, не должно быть.
Partitioning помогает не ускорить всё подряд, а правильно ограничить объём работы
Коллеги, давайте разберем план выполнения. Секционирование полезно, когда запросы почти всегда бьют в узкий диапазон данных: по дате, региону, статусу. Тогда планировщик может отсечь лишние секции и читать меньше строк. Но если фильтр не совпадает с ключом секции, получите просто дорогую декорацию: таблица та же, только в разобранном виде.
Перед внедрением проверьте три вещи:
— есть ли стабильный критерий отсечения секций;
— совпадает ли он с типовыми WHERE/JOIN;
— не превратится ли обслуживание в ручной квест с сотней объектов.
Схема простая, но дьявол кроется в статистике: без неё оптимизатор легко выбирает полный проход по всем секциям, и весь смысл partition pruning испаряется.
Отдельно смотрите на DML. Массовые INSERT/UPDATE/DELETE по секционированной таблице часто упираются не в «скорость доступа», а в блокировки, локи на каталоги и накладные расходы на маршрутизацию строк. И да, глобальные индексы, если они есть, могут съесть часть выигрыша на записи и бэкапах.
Золотое правило: сначала мониторинг, потом индексы. Сначала измерьте, сколько запросов реально отсекают секции, сколько времени уходит на I/O и сколько стоит обслуживание. Если выигрыш неочевиден, partitioning лучше оставить как инструмент для жизненного цикла данных, а не как универсальное ускорение.
Коллеги, давайте разберем план выполнения. Секционирование полезно, когда запросы почти всегда бьют в узкий диапазон данных: по дате, региону, статусу. Тогда планировщик может отсечь лишние секции и читать меньше строк. Но если фильтр не совпадает с ключом секции, получите просто дорогую декорацию: таблица та же, только в разобранном виде.
Перед внедрением проверьте три вещи:
— есть ли стабильный критерий отсечения секций;
— совпадает ли он с типовыми WHERE/JOIN;
— не превратится ли обслуживание в ручной квест с сотней объектов.
Схема простая, но дьявол кроется в статистике: без неё оптимизатор легко выбирает полный проход по всем секциям, и весь смысл partition pruning испаряется.
Отдельно смотрите на DML. Массовые INSERT/UPDATE/DELETE по секционированной таблице часто упираются не в «скорость доступа», а в блокировки, локи на каталоги и накладные расходы на маршрутизацию строк. И да, глобальные индексы, если они есть, могут съесть часть выигрыша на записи и бэкапах.
Золотое правило: сначала мониторинг, потом индексы. Сначала измерьте, сколько запросов реально отсекают секции, сколько времени уходит на I/O и сколько стоит обслуживание. Если выигрыш неочевиден, partitioning лучше оставить как инструмент для жизненного цикла данных, а не как универсальное ускорение.
Forwarded from AffPapa! Клуб спящих бизнесменов! Потрачено!
Please open Telegram to view this post
VIEW IN TELEGRAM
EXPLAIN ANALYZE: где план ломает ожидания и как это поймать без магии
Коллеги, давайте разберем план выполнения. Сам EXPLAIN показывает, что оптимизатор собрался делать, а ANALYZE — что он реально сделал. И вот тут часто всплывает разница между красивым планом и тяжелым продом: оценки строк мимо, сортировка в память не влезла, nested loop внезапно обошелся дороже seq scan.
Смотрите на три вещи:
— estimated rows vs actual rows: если разрыв в разы, статистика врет или условие плохо селективно;
— loops: высокий loop-count быстро превращает «нормальный» оператор в пожирателя CPU;
— time vs rows: узкое место может быть не в самом операторе, а в дочернем узле, который его кормит.
Дальше — I/O и память. Если видите temp files, spills, большие shared read, не лечите это сразу индексом. Сначала поймите, почему план выбрал именно такой путь: не хватает статистики, неудачный порядок JOIN, слишком широкий набор колонок, или запрос тянет лишнее через SELECT *. Схема простая, но дьявол кроется в статистике.
Золотое правило: сначала мониторинг, потом индексы. Снимайте план на реальном параметре, сравнивайте с типичным кейсом, и ищите не «плохой оператор», а место, где ошибка оценки запускает каскадный перекос по всему плану.
Коллеги, давайте разберем план выполнения. Сам EXPLAIN показывает, что оптимизатор собрался делать, а ANALYZE — что он реально сделал. И вот тут часто всплывает разница между красивым планом и тяжелым продом: оценки строк мимо, сортировка в память не влезла, nested loop внезапно обошелся дороже seq scan.
Смотрите на три вещи:
— estimated rows vs actual rows: если разрыв в разы, статистика врет или условие плохо селективно;
— loops: высокий loop-count быстро превращает «нормальный» оператор в пожирателя CPU;
— time vs rows: узкое место может быть не в самом операторе, а в дочернем узле, который его кормит.
Дальше — I/O и память. Если видите temp files, spills, большие shared read, не лечите это сразу индексом. Сначала поймите, почему план выбрал именно такой путь: не хватает статистики, неудачный порядок JOIN, слишком широкий набор колонок, или запрос тянет лишнее через SELECT *. Схема простая, но дьявол кроется в статистике.
Золотое правило: сначала мониторинг, потом индексы. Снимайте план на реальном параметре, сравнивайте с типичным кейсом, и ищите не «плохой оператор», а место, где ошибка оценки запускает каскадный перекос по всему плану.
Настройка параметров БД: как не ускорить одно место и не убить всё остальное
Коллеги, давайте разберем план выполнения. Большинство «тюнинга» начинается с плохой идеи: выкрутить все параметры в максимум. В итоге БД не быстрее, а просто голоднее по памяти, I/O и CPU.
Рабочий порядок такой:
— сначала смотрим нагрузку: top запросы, ожидания, блокировки, cache hit, temp/undo, WAL/redo;
— потом ищем узкое место: память, диск, соединения, параллелизм, журналирование;
— только затем меняем один параметр за раз и фиксируем эффект.
Типовые ошибки:
— увеличили кэш, не оставив памяти ОС и соседним процессам;
— подняли число воркеров, не проверив контеншн на CPU и диск;
— отключили синхронность/безопасность ради «быстрее», а потом ловят сюрпризы при сбое.
Схема простая, но дьявол кроется в статистике. Если нет базовой линии, вы не поймёте, помог параметр или просто совпало с более лёгкой нагрузкой.
Золотое правило: сначала мониторинг, потом индексы. А для конфигурации — сначала измерение, потом одно изменение, потом повторная проверка на той же нагрузке.
Коллеги, давайте разберем план выполнения. Большинство «тюнинга» начинается с плохой идеи: выкрутить все параметры в максимум. В итоге БД не быстрее, а просто голоднее по памяти, I/O и CPU.
Рабочий порядок такой:
— сначала смотрим нагрузку: top запросы, ожидания, блокировки, cache hit, temp/undo, WAL/redo;
— потом ищем узкое место: память, диск, соединения, параллелизм, журналирование;
— только затем меняем один параметр за раз и фиксируем эффект.
Типовые ошибки:
— увеличили кэш, не оставив памяти ОС и соседним процессам;
— подняли число воркеров, не проверив контеншн на CPU и диск;
— отключили синхронность/безопасность ради «быстрее», а потом ловят сюрпризы при сбое.
Схема простая, но дьявол кроется в статистике. Если нет базовой линии, вы не поймёте, помог параметр или просто совпало с более лёгкой нагрузкой.
Золотое правило: сначала мониторинг, потом индексы. А для конфигурации — сначала измерение, потом одно изменение, потом повторная проверка на той же нагрузке.
Forwarded from AffPapa! Клуб спящих бизнесменов! Потрачено!
Я ДЕЛАЮ СОБСТВЕННЫЙ СЕРВИС КАРТ ДЛЯ АРБИТРАЖА - NeCards
Только без обычной хуйни: «эксклюзивные трастовые BIN’ы»;
«надёжный европейский эмитент»;
«наш банковский партнёр»;
«подробности уточняйте у менеджера».
У меня всегда был один вопрос: какой, блять, банк? Кому принадлежат BIN’ы? Почему вчера они были трастовые, а сегодня половина рынка ловит risk payment?
Хуй пойми.
Поэтому в NeCards всё будет открыто:
• какой банк выпустил BIN;
• где он показывает себя лучше;
• что разрешено и запрещено;
• комиссии, лимиты;
• юридическое лицо;
• закрывающие документы.
Если сервис скрывает название банка, возможно, проблема не в банковской тайне. Возможно, банка там просто нет.
Сейчас я уже работаю напрямую с банками. Идут договора, комплаенс и прочая взрослая скучная хуйня, которая почему-то занимает больше двух вечеров.
Но платформу мы уже доделали:
• выпуск и управление картами;
• команды и массовые операции;
• аналитика и API;
• нормальный интерфейс без ощущения, что ты открыл админку интернет-магазина из 2011 года.
ЧТО БУДЕТ СЕЙЧАС?
На старте в NeCards будут карты сторонних проверенных поставщиков.
Только я не собираюсь называть чужие BIN’ы «нашей уникальной банковской инфраструктурой».
Я честно покажу, откуда карты, какие у них условия и ограничения.
Комиссии поставщиков на время тестирования возьму на себя.
Сможете бесплатно получить карты, проверить платформу и помочь довести её до состояния, когда она просто, блять, работает, хотя уже - работает, но... На всякий!
Без «революции рынка».
ЧТО БУДЕТ ДАЛЬШЕ?
В сентябре рассчитываю закончить прямые договоры с банками.
После этого постепенно перейдём на собственные банковские программы.
Нормальные банки.
Прямые договоры.
Открытые BIN’ы.
Понятные ограничения.
Закрывающие документы.
Нужно официально учитывать расходы и платить налоги? Пожалуйста. Не нужно? Ну и поебать.
Главное, что вы всегда будете понимать, чьими картами пользуетесь, сколько реально платите и кто отвечает за инфраструктуру.
Скоро открою бесплатное тестирование NeCards
____
🤔 Консоли Google Play и Apple Developer надо? Phoenix — 100% свой фарм с 2021-го. Забрать акки → @phoenix_seller_bot 🤔
Только без обычной хуйни: «эксклюзивные трастовые BIN’ы»;
«надёжный европейский эмитент»;
«наш банковский партнёр»;
«подробности уточняйте у менеджера».
У меня всегда был один вопрос: какой, блять, банк? Кому принадлежат BIN’ы? Почему вчера они были трастовые, а сегодня половина рынка ловит risk payment?
Хуй пойми.
Поэтому в NeCards всё будет открыто:
• какой банк выпустил BIN;
• где он показывает себя лучше;
• что разрешено и запрещено;
• комиссии, лимиты;
• юридическое лицо;
• закрывающие документы.
Если сервис скрывает название банка, возможно, проблема не в банковской тайне. Возможно, банка там просто нет.
Сейчас я уже работаю напрямую с банками. Идут договора, комплаенс и прочая взрослая скучная хуйня, которая почему-то занимает больше двух вечеров.
Но платформу мы уже доделали:
• выпуск и управление картами;
• команды и массовые операции;
• аналитика и API;
• нормальный интерфейс без ощущения, что ты открыл админку интернет-магазина из 2011 года.
ЧТО БУДЕТ СЕЙЧАС?
На старте в NeCards будут карты сторонних проверенных поставщиков.
Только я не собираюсь называть чужие BIN’ы «нашей уникальной банковской инфраструктурой».
Я честно покажу, откуда карты, какие у них условия и ограничения.
Комиссии поставщиков на время тестирования возьму на себя.
Сможете бесплатно получить карты, проверить платформу и помочь довести её до состояния, когда она просто, блять, работает, хотя уже - работает, но... На всякий!
Без «революции рынка».
ЧТО БУДЕТ ДАЛЬШЕ?
В сентябре рассчитываю закончить прямые договоры с банками.
После этого постепенно перейдём на собственные банковские программы.
Нормальные банки.
Прямые договоры.
Открытые BIN’ы.
Понятные ограничения.
Закрывающие документы.
Нужно официально учитывать расходы и платить налоги? Пожалуйста. Не нужно? Ну и поебать.
Главное, что вы всегда будете понимать, чьими картами пользуетесь, сколько реально платите и кто отвечает за инфраструктуру.
Скоро открою бесплатное тестирование NeCards
____
Please open Telegram to view this post
VIEW IN TELEGRAM