Forwarded from AFF.TOP
This media is not supported in your browser
VIEW IN TELEGRAM
SpacexAI выпустила Grok 4.5
xAI выпустила Grok 4.5 — новую версию флагманской нейросети, доступную в Cursor на всех тарифах и по API за $2 за миллион входных токенов. Бенчмарков пока нет, но модель в 4,2 раза экономнее по токенам на SWE Bench Pro и обучена на данных Cursor, что делает её сильным инструментом для разработки приложений.
➡️ Читайте на сайте: https://aff.top/blog/spacexai-vypustila-grok-4-5
🧠 Ещё больше инсайтов → в канале AFF.top
xAI выпустила Grok 4.5 — новую версию флагманской нейросети, доступную в Cursor на всех тарифах и по API за $2 за миллион входных токенов. Бенчмарков пока нет, но модель в 4,2 раза экономнее по токенам на SWE Bench Pro и обучена на данных Cursor, что делает её сильным инструментом для разработки приложений.
➡️ Читайте на сайте: https://aff.top/blog/spacexai-vypustila-grok-4-5
🧠 Ещё больше инсайтов → в канале AFF.top
Forwarded from AFF.TOP
This media is not supported in your browser
VIEW IN TELEGRAM
ChatGPT ads внедрил функцию автосоздания креативов
OpenAI добавила в ChatGPT Ads автогенерацию креативов: вставляешь ссылку на сайт, ИИ анализирует лендинг и создаёт релевантный креатив. По ощущениям, такие материалы должны легко проходить модерацию, но пока неясно, насколько они поддаются правкам. Источник интересен ещё и тем, что вайт можно сгенерировать тут же через ChatGPT.
➡️ Читайте на сайте: https://aff.top/blog/chatgpt-ads-vnedril-funkciiu-avtosozdaniia-kreativov
🧠 Ещё больше инсайтов → в канале AFF.top
OpenAI добавила в ChatGPT Ads автогенерацию креативов: вставляешь ссылку на сайт, ИИ анализирует лендинг и создаёт релевантный креатив. По ощущениям, такие материалы должны легко проходить модерацию, но пока неясно, насколько они поддаются правкам. Источник интересен ещё и тем, что вайт можно сгенерировать тут же через ChatGPT.
➡️ Читайте на сайте: https://aff.top/blog/chatgpt-ads-vnedril-funkciiu-avtosozdaniia-kreativov
🧠 Ещё больше инсайтов → в канале AFF.top
Forwarded from AFF.TOP
This media is not supported in your browser
VIEW IN TELEGRAM
В Google search console теперь можно добавлять соцсети
Google добавил в Search Console поддержку аккаунтов соцсетей: теперь можно отслеживать ключевые запросы, источники и географию переходов, показы и клики по ссылкам. Функция подключается там же, где и сайты, доступны четыре соцсети на выбор. Rollout постепенный — доступ получают не все сразу.
➡️ Читайте на сайте: https://aff.top/blog/v-google-search-console-teper-mozhno-dobavliat-socseti
🧠 Ещё больше инсайтов → в канале AFF.top
Google добавил в Search Console поддержку аккаунтов соцсетей: теперь можно отслеживать ключевые запросы, источники и географию переходов, показы и клики по ссылкам. Функция подключается там же, где и сайты, доступны четыре соцсети на выбор. Rollout постепенный — доступ получают не все сразу.
➡️ Читайте на сайте: https://aff.top/blog/v-google-search-console-teper-mozhno-dobavliat-socseti
🧠 Ещё больше инсайтов → в канале AFF.top
Forwarded from AFF.TOP
This media is not supported in your browser
VIEW IN TELEGRAM
Google стал помечать креативы, созданные ИИ
Google объявил, что начнёт помечать рекламные креативы, созданные нейросетями. Причина — ИИ-баннеры и видео стали слишком похожи на настоящие.
Формат и заметность маркировки будут зависеть от законов конкретного региона: где-то предупреждение появится прямо на креативе, где-то — в его информации.
Что это значит для арбитражников и когда правила …
➡️ Читайте на сайте: https://aff.top/blog/google-stal-pomechat-kreativy-sozdannye-ii
🧠 Ещё больше инсайтов → в канале AFF.top
Google объявил, что начнёт помечать рекламные креативы, созданные нейросетями. Причина — ИИ-баннеры и видео стали слишком похожи на настоящие.
Формат и заметность маркировки будут зависеть от законов конкретного региона: где-то предупреждение появится прямо на креативе, где-то — в его информации.
Что это значит для арбитражников и когда правила …
➡️ Читайте на сайте: https://aff.top/blog/google-stal-pomechat-kreativy-sozdannye-ii
🧠 Ещё больше инсайтов → в канале AFF.top
Forwarded from AFF.TOP
This media is not supported in your browser
VIEW IN TELEGRAM
Компания Meta выпустила Muse Spark 1.1
Meta выпустила Muse Spark 1.1 почти одновременно с новой ChatGPT-5.6. Это мультимодальный агент, который сам дробит задачу на подзадачи и распределяет их между субагентами.
Стоимость тоже заметно ниже топовых западных моделей: $1.25 за миллион входных токенов и $4.25 за миллион выходных.
Но главный вопрос — насколько она реально сильна на фоне к…
➡️ Читайте на сайте: https://aff.top/blog/kompaniia-meta-vypustila-muse-spark-1-1
🧠 Ещё больше инсайтов → в канале AFF.top
Meta выпустила Muse Spark 1.1 почти одновременно с новой ChatGPT-5.6. Это мультимодальный агент, который сам дробит задачу на подзадачи и распределяет их между субагентами.
Стоимость тоже заметно ниже топовых западных моделей: $1.25 за миллион входных токенов и $4.25 за миллион выходных.
Но главный вопрос — насколько она реально сильна на фоне к…
➡️ Читайте на сайте: https://aff.top/blog/kompaniia-meta-vypustila-muse-spark-1-1
🧠 Ещё больше инсайтов → в канале AFF.top
Миграция данных без простоя: где чаще всего рвётся план и как это остановить
Коллеги, давайте разберем план выполнения. Миграция ломается не на «копировании данных», а на хвостах: долгие транзакции, неконсистентные дампы, скрытые зависимости, фоновые джобы. Если это не учесть, приложение либо встаёт, либо начинает читать половину старой схемы и половину новой.
Базовый безопасный сценарий такой:
— сначала инвентаризация: таблицы, FK, триггеры, очереди, внешние интеграции;
— потом прогон на копии с замером времени чтения, записи и восстановления;
— затем двойная запись или репликация, чтобы не держать прод на одном окне;
— и только после этого переключение с быстрым rollback-планом.
Перед переключением проверьте не объём, а поведение: есть ли длинные транзакции, блокировки на запись, перестроение индексов, бэкграунд-воркеры, которые лезут в старую схему. Посмотрим, что тут с I/O в реальности: часто именно оно превращает «быстрый cutover» в многочасовой простой.
Схема простая, но дьявол кроется в статистике: если после переноса план запроса уехал, вы получите не миграцию, а тихую деградацию. Золотое правило: сначала мониторинг, потом индексы. Сначала убедитесь, что старый и новый контуры читают и пишут одинаково, и только потом выключайте старый путь.
Коллеги, давайте разберем план выполнения. Миграция ломается не на «копировании данных», а на хвостах: долгие транзакции, неконсистентные дампы, скрытые зависимости, фоновые джобы. Если это не учесть, приложение либо встаёт, либо начинает читать половину старой схемы и половину новой.
Базовый безопасный сценарий такой:
— сначала инвентаризация: таблицы, FK, триггеры, очереди, внешние интеграции;
— потом прогон на копии с замером времени чтения, записи и восстановления;
— затем двойная запись или репликация, чтобы не держать прод на одном окне;
— и только после этого переключение с быстрым rollback-планом.
Перед переключением проверьте не объём, а поведение: есть ли длинные транзакции, блокировки на запись, перестроение индексов, бэкграунд-воркеры, которые лезут в старую схему. Посмотрим, что тут с I/O в реальности: часто именно оно превращает «быстрый cutover» в многочасовой простой.
Схема простая, но дьявол кроется в статистике: если после переноса план запроса уехал, вы получите не миграцию, а тихую деградацию. Золотое правило: сначала мониторинг, потом индексы. Сначала убедитесь, что старый и новый контуры читают и пишут одинаково, и только потом выключайте старый путь.
Индексы: как не убить запись ради ускорения одного отчёта
Коллеги, давайте разберем план выполнения. Индекс — это не «ускоритель всего», а компромисс между чтением и записью. Ошибка №1: ставить B-Tree на каждый столбец подряд. Ошибка №2: держать дублирующие и пересекающиеся индексы — они съедают место, замедляют INSERT/UPDATE и путают оптимизатор.
Схема простая, но дьявол кроется в статистике. Сначала ищем запросы с реальным больным местом: дорогие сканы, сортировки, nested loop на больших объёмах, частые фильтры и JOIN по ключам. Затем смотрим селективность: если колонка почти всегда одинаковая, индекс на ней часто бесполезен. Если запрос выбирает 30–40% таблицы, оптимизатор нередко честно выберет full scan — и это нормально.
Дальше — стратегия. • Составной индекс строим под шаблон WHERE + JOIN + ORDER BY, а не «на всякий случай». • Порядок колонок важен: сначала самые селективные и используемые в фильтре. • Для покрывающих запросов добавляем только нужные поля, без фанатизма. • Не забываем про maintenance: чем больше индексов, тем дороже массовые загрузки и перестроения 🛠️
Перед созданием индекса проверьте: он реально попадёт в запрос, не дублирует ли уже существующий, не ломает ли планы на соседних запросах. Золотое правило: сначала мониторинг, потом индексы. Иначе получаете красивую схему и медленный продакшен.
Коллеги, давайте разберем план выполнения. Индекс — это не «ускоритель всего», а компромисс между чтением и записью. Ошибка №1: ставить B-Tree на каждый столбец подряд. Ошибка №2: держать дублирующие и пересекающиеся индексы — они съедают место, замедляют INSERT/UPDATE и путают оптимизатор.
Схема простая, но дьявол кроется в статистике. Сначала ищем запросы с реальным больным местом: дорогие сканы, сортировки, nested loop на больших объёмах, частые фильтры и JOIN по ключам. Затем смотрим селективность: если колонка почти всегда одинаковая, индекс на ней часто бесполезен. Если запрос выбирает 30–40% таблицы, оптимизатор нередко честно выберет full scan — и это нормально.
Дальше — стратегия. • Составной индекс строим под шаблон WHERE + JOIN + ORDER BY, а не «на всякий случай». • Порядок колонок важен: сначала самые селективные и используемые в фильтре. • Для покрывающих запросов добавляем только нужные поля, без фанатизма. • Не забываем про maintenance: чем больше индексов, тем дороже массовые загрузки и перестроения 🛠️
Перед созданием индекса проверьте: он реально попадёт в запрос, не дублирует ли уже существующий, не ломает ли планы на соседних запросах. Золотое правило: сначала мониторинг, потом индексы. Иначе получаете красивую схему и медленный продакшен.
Как быстро найти bottleneck: сначала мониторинг, потом индексы
Коллеги, давайте разберем план выполнения. Узкое место почти всегда видно раньше, чем его начинают «лечить» индексом: растет latency, очередь запросов, CPU, disk wait или lock wait. Ищем не «медленную базу», а конкретную точку, где система теряет время.
Схема простая, но дьявол кроется в статистике. Смотрите по слоям:
— приложение: всплеск времени ответа, ретраи, таймауты;
— БД: рост активных сессий, long-running queries, блокировки;
— хранилище: IOPS, throughput, await, cache miss;
— память: вытеснение буферов, spill на диск, рост temp usage.
Потом связываем симптомы с конкретным запросом. Если CPU высокий — ищем тяжелые сканы, сортировки, hash join; если I/O — проверяем большие чтения, плохую селективность, отсутствие covering-индексов; если lock wait — смотрим, кто держит транзакцию и почему она живет слишком долго. В продакшене так лучше не делать, и вот почему: чинить надо причину, а не следствие.
Золотое правило: сначала мониторинг, потом индексы. Без базовой картины вы легко оптимизируете не тот запрос и получите красивый план, который все равно упирается в диск или блокировки.
Коллеги, давайте разберем план выполнения. Узкое место почти всегда видно раньше, чем его начинают «лечить» индексом: растет latency, очередь запросов, CPU, disk wait или lock wait. Ищем не «медленную базу», а конкретную точку, где система теряет время.
Схема простая, но дьявол кроется в статистике. Смотрите по слоям:
— приложение: всплеск времени ответа, ретраи, таймауты;
— БД: рост активных сессий, long-running queries, блокировки;
— хранилище: IOPS, throughput, await, cache miss;
— память: вытеснение буферов, spill на диск, рост temp usage.
Потом связываем симптомы с конкретным запросом. Если CPU высокий — ищем тяжелые сканы, сортировки, hash join; если I/O — проверяем большие чтения, плохую селективность, отсутствие covering-индексов; если lock wait — смотрим, кто держит транзакцию и почему она живет слишком долго. В продакшене так лучше не делать, и вот почему: чинить надо причину, а не следствие.
Золотое правило: сначала мониторинг, потом индексы. Без базовой картины вы легко оптимизируете не тот запрос и получите красивый план, который все равно упирается в диск или блокировки.
EXPLAIN ANALYZE: как читать план и не попасть в ловушку красивых цифр
Коллеги, давайте разберем план выполнения. EXPLAIN ANALYZE полезен только вместе с фактическим исполнением: план без runtime — это гипотеза, а не диагноз.
Смотрите в первую очередь на:
— расхождение estimated rows и actual rows;
— тип скана: Seq Scan, Index Scan, Bitmap Scan;
— узкие места по времени: Sort, Hash, Nested Loop, Materialize;
— loops: если оператор крутится тысячи раз, проблема часто не там, где кажется.
Важный момент: низкое время одного узла еще не значит, что он безобиден. Посмотрим, что тут с I/O в реальности: буферный кэш, чтение с диска и большие сортировки могут скрываться за «быстрым» планом, пока запрос не упрется в память или конкурентный доступ. А если видите сильный разъезд оценок, сначала проверьте статистику и селективность условий, а не спешите ставить новый индекс.
Полезная привычка: сравнивайте несколько запусков, особенно под разной нагрузкой. Один красивый план на пустой системе и другой под блокировками — это два разных зверя.
Золотое правило: сначала мониторинг, потом индексы. EXPLAIN ANALYZE отвечает не на вопрос «как ускорить вообще», а на вопрос «где именно запрос тратит время и почему».
Коллеги, давайте разберем план выполнения. EXPLAIN ANALYZE полезен только вместе с фактическим исполнением: план без runtime — это гипотеза, а не диагноз.
Смотрите в первую очередь на:
— расхождение estimated rows и actual rows;
— тип скана: Seq Scan, Index Scan, Bitmap Scan;
— узкие места по времени: Sort, Hash, Nested Loop, Materialize;
— loops: если оператор крутится тысячи раз, проблема часто не там, где кажется.
Важный момент: низкое время одного узла еще не значит, что он безобиден. Посмотрим, что тут с I/O в реальности: буферный кэш, чтение с диска и большие сортировки могут скрываться за «быстрым» планом, пока запрос не упрется в память или конкурентный доступ. А если видите сильный разъезд оценок, сначала проверьте статистику и селективность условий, а не спешите ставить новый индекс.
Полезная привычка: сравнивайте несколько запусков, особенно под разной нагрузкой. Один красивый план на пустой системе и другой под блокировками — это два разных зверя.
Золотое правило: сначала мониторинг, потом индексы. EXPLAIN ANALYZE отвечает не на вопрос «как ускорить вообще», а на вопрос «где именно запрос тратит время и почему».
Настройка параметров БД: где экономят, а где потом тушат инцидент
Коллеги, давайте разберем план выполнения. Конфигурация БД — не список «побольше CPU, поменьше latency», а набор компромиссов между памятью, I/O и конкуренцией за ресурсы.
— Начинайте с метрик, а не с тюнинга: CPU, wait events, буферы, лог-запись, размер рабочих наборов.
— Меняйте один параметр за раз и фиксируйте эффект; иначе потом никто не докажет, что именно помогло.
— Любой рост cache/buffer без проверки давления на память = риск свопа и деградации всего сервера.
— Параметры параллелизма и worker’ов легко превращают быстрые запросы в очередь из 100 “полезных” задач.
Схема простая, но дьявол кроется в статистике: если планы строятся на мусорных данных, то и конфиг вы “оптимизируете” под фантомную нагрузку. Сначала проверьте актуальность статистики, распределение данных, частые шаблоны запросов и узкие места по блокировкам. Потом уже трогайте work_mem, innodb_buffer_pool_size, shared_buffers, checkpoint-логику или аналоги — в зависимости от движка.
Золотое правило: сначала мониторинг, потом индексы. С конфигом то же самое: сначала измеряем, затем меняем, затем снова измеряем. В продакшене так лучше не делать наугад — один неверный параметр может улучшить бенчмарк и убить реальную нагрузку.
Коллеги, давайте разберем план выполнения. Конфигурация БД — не список «побольше CPU, поменьше latency», а набор компромиссов между памятью, I/O и конкуренцией за ресурсы.
— Начинайте с метрик, а не с тюнинга: CPU, wait events, буферы, лог-запись, размер рабочих наборов.
— Меняйте один параметр за раз и фиксируйте эффект; иначе потом никто не докажет, что именно помогло.
— Любой рост cache/buffer без проверки давления на память = риск свопа и деградации всего сервера.
— Параметры параллелизма и worker’ов легко превращают быстрые запросы в очередь из 100 “полезных” задач.
Схема простая, но дьявол кроется в статистике: если планы строятся на мусорных данных, то и конфиг вы “оптимизируете” под фантомную нагрузку. Сначала проверьте актуальность статистики, распределение данных, частые шаблоны запросов и узкие места по блокировкам. Потом уже трогайте work_mem, innodb_buffer_pool_size, shared_buffers, checkpoint-логику или аналоги — в зависимости от движка.
Золотое правило: сначала мониторинг, потом индексы. С конфигом то же самое: сначала измеряем, затем меняем, затем снова измеряем. В продакшене так лучше не делать наугад — один неверный параметр может улучшить бенчмарк и убить реальную нагрузку.
Секционирование таблиц не лечит медленные запросы, если фильтр не попадает в ключ
Коллеги, давайте разберем план выполнения. Partitioning — это не «ускоритель всего», а способ уменьшить объем данных, с которыми реально работает запрос. Если условия WHERE не используют ключ секции, оптимизатор спокойно пойдет по всем партициям, и вы получите сложность без выигрыша.
Смотрите на три вещи:
— как выбирается секция: по дате, диапазону, списку значений;
— есть ли pruning: отсекаются ли лишние партиции на этапе планирования;
— не ломает ли секционирование джойны, уникальность и обслуживание.
Частая ошибка — секционировать по одному полю, а фильтровать по другому. Тогда таблица красиво нарезана, но запросы все равно читают лишнее. Еще один классика: слишком мелкие партиции. Метаданные растут, план усложняется, обслуживание превращается в ручной труд с лишним I/O и блокировками.
Золотое правило: сначала мониторинг, потом индексы. Перед внедрением посмотрите реальные планы, объемы чтения и типовые запросы. Если нужен архив, горячие данные отдельно, а старые секции можно быстро чистить или переносить. Если нужен только ускоритель SELECT, иногда обычный индекс честнее и дешевле.
Коллеги, давайте разберем план выполнения. Partitioning — это не «ускоритель всего», а способ уменьшить объем данных, с которыми реально работает запрос. Если условия WHERE не используют ключ секции, оптимизатор спокойно пойдет по всем партициям, и вы получите сложность без выигрыша.
Смотрите на три вещи:
— как выбирается секция: по дате, диапазону, списку значений;
— есть ли pruning: отсекаются ли лишние партиции на этапе планирования;
— не ломает ли секционирование джойны, уникальность и обслуживание.
Частая ошибка — секционировать по одному полю, а фильтровать по другому. Тогда таблица красиво нарезана, но запросы все равно читают лишнее. Еще один классика: слишком мелкие партиции. Метаданные растут, план усложняется, обслуживание превращается в ручной труд с лишним I/O и блокировками.
Золотое правило: сначала мониторинг, потом индексы. Перед внедрением посмотрите реальные планы, объемы чтения и типовые запросы. Если нужен архив, горячие данные отдельно, а старые секции можно быстро чистить или переносить. Если нужен только ускоритель SELECT, иногда обычный индекс честнее и дешевле.