архитектурный подход к созданию распределённых систем приложение разделяется на самостоятельные сервисы каждый из них выполняет определённую бизнес-задачу сервисы обмениваются данными через строго определённые API…
Как различаются JOIN на уровне множеств JOIN — объединение таблиц по ключевым значениям INNER JOIN — пересечение множеств: возвращаются только общие строки LEFT JOIN — сохраняет все строки слева и дополняет их данными…
Параллельная обработка с ограничением числа горутин контекст: конкурентность в Go задача: контролировать количество одновременно выполняющихся горутин, чтобы рационально расходовать ресурсы решение: применить…
Палиндромом называют строку, которая одинаково читается в обоих направлениях — слева направо и справа налево Для проверки сопоставляют символы, расположенные в начале и в конце строки В зависимости от условий задачи…
Порядок полей в составном индексе определяется префиксным принципом — от первого поля к последующим первым размещают столбец с максимальной селективностью, который сильнее всего ограничивает выборку остальные поля…
Как определить индексы, необходимые для оптимизации? Анализирую нагрузку: начинаю с наиболее часто выполняемых запросов и изучаю их планы выполнения с помощью EXPLAIN/ANALYZE Выявляю столбцы, используемые для…
Оптимизация SQL-запроса для постов пользователей с >500 подписчиками контекст: оптимизация запросов с использованием join и фильтрацией NULL создать индексы для колонок, участвующих в фильтрации и соединении, например…
Оптимизация запроса: самое длинное видео среди топ-10 коротких Контекст: SQL-запросы предназначены для поиска видео и сортировки результатов по длительности Основная задача: определить самое длинное видео среди…
Как действовать при высокой OLTP-нагрузке на запись и больших объёмах чтения OLTP-система с интенсивной записью и чтением в режиме bulk read Главный приоритет — ускорить операции записи и не допустить их блокировки…
HTTP/REST: синхронный и простой способ с широкой поддержкой gRPC: высокопроизводительный бинарный протокол для быстрых вызовов Message Broker (RabbitMQ, Kafka): асинхронный обмен через очереди, повышающий устойчивость…
Асинхронная передача сообщений через очередь Обработка с гарантией доставки один раз (at-least-once / exactly-once — в зависимости от реализации) Централизованное хранение событий с уникальными метками Разделение…
контекст: общая концепция передачи аргументов в функции зависит от языка и типа данных: примитивные значения передаются по значению, а объекты — по ссылке или как копии ссылок в C/C++: базовые типы передаются по…