Проектирование базы данных для системы расписания модель предметной области включает уроки, записи, учителей, классы и аудитории урок — основная сущность, содержащая время проведения, предмет, учителя и аудиторию…
Проектирование биржевого терминала или аналитической Forex-платформы Архитектура: микросервисы, обеспечивающие масштабируемость и отказоустойчивость Фронтенд: SPA на React или Vue с поддержкой реального времени через…
Проектирование системы сохранений: переход от локальной модели к серверной и двунаправленная запись Архитектура: абстрактный слой сохранения, объединяющий локальное и серверное хранилища Локальное сохранение:…
data pipeline — это цепочка последовательных операций обработки данных надёжность достигается за счёт обработки ошибок, повторных попыток и мониторинга масштабируемость обеспечивают распределённые системы и…
сервис для подсчёта просмотров видео в интернете основные требования: высокая производительность под нагрузкой, точность подсчётов и возможность масштабирования приём событий о просмотрах через API или SDK,…
Как проверять сервис, работающий с БД и внешними системами? Уровни тестирования: юнит-тесты, интеграционные тесты, e2e На уровне юнит-тестов использовать моки и стабы для внешних API и запросов к БД Проводить…
Как проверить сохранение данных в БД при скрытых сбоях контроль целостности посредством транзакций (ACID) регистрация операций записи в audit log контроль уникальности и ссылочной целостности, включая внешние ключи…
изучить план выполнения с помощью EXPLAIN/EXPLAIN ANALYZE найти узкие места: сканирование таблиц и отсутствие индексов проверить и создать индексы для часто используемых колонок переписать запрос: упростить JOIN и по…
Как ускорить запрос с фильтрацией по JSON-полю? JSON позволяет хранить в БД данные с гибкой структурой создать индексы для отдельных ключей JSON, например GIN в PostgreSQL применять специализированные операторы…
Профилирование запроса и поиск узких мест Индексация авторского поля: создание индекса по имени Кэширование результатов часто выполняемых запросов Вертикальное или горизонтальное масштабирование БД Переход на…
Аналитика и оптимизация запросов Подбирать подходящие индексы — B-tree, GIN или GiST — для ускорения выборок Использовать партиционирование для таблиц с диапазонными и временными данными Применять материализованные…
Hibernate — Java ORM, в котором по умолчанию используется ленивая загрузка Проблема N+1 возникает, когда один запрос выбирает основные данные, а ещё N запросов обращаются к связанным объектам при ленивой загрузке…