Подборка объединяет вопросы, отмеченные на этапах интервью в Сбербанк ДомКлик. Здесь можно понять структуру технической проверки и заранее повторить связанные темы. В подборке чаще встречаются темы: async, database, testing.
Освобождает ли GIL соединение с базой данных при аварийном завершении задачи? GIL (Global Interpreter Lock) — механизм синхронизации, используемый в CPython. GIL напрямую не управляет ресурсами и соединениями с базой…
Как PostgreSQL выполняет оператор UPDATE? Система управления реляционной БД PostgreSQL не изменяет строки непосредственно на месте Используется механизм MVCC: прежняя версия строки помечается удалённой Формируется…
Для поиска дедлоков, или взаимоблокировок, СУБД анализирует граф блокировок: транзакции представлены узлами, а зависимости по ресурсам — связями В PostgreSQL периодически выполняется поиск циклов в wait-for graph…
Как Redis-кеширование используется для оптимизации? Redis — это In-Memory хранилище с минимальной задержкой Его применяют для хранения данных, которые запрашиваются особенно часто Наиболее распространённый вариант —…
Как query planner помогает выявлять причины проблем с производительностью? исследование плана выполнения SQL-операций обнаружение узких мест: полнотекстовый скан, джойны, индексы оценка стоимости (cost) и расчетного…
управление конкурентным доступом (Concurrency Control) уровни изоляции (Read Uncommitted → Serializable) блокировки (Locking): shared и exclusive мультиверсионность (MVCC) — хранение версий данных для чтения…
Ограничения UNIQUE: запрещают повторение значений в столбце или их комбинации PRIMARY KEY: уникальный идентификатор строки, автоматически обеспечивающий UNQUE Уникальные индексы: ускоряют поиск и одновременно…
способ горизонтального разделения таблиц в БД данные распределяются по подмножествам (партициям) на основании ключа каждая такая часть отдельно хранится и обрабатывается повышает производительность запросов и операций…
Как создать Singleton в Python? Паттерн гарантирует наличие единственного экземпляра класса Для экземпляра используется глобальное хранилище Ручную логику можно разместить в new или init: в new выполняются проверка и…
Как устроен сборщик мусора в Python? управление памятью основано на подсчёте ссылок (reference counting) для каждого объекта ведётся счётчик ссылок; когда он становится равен 0, объект удаляется освобождение памяти…
Типичный процесс непрерывной интеграции (CI pipeline) Автоматическая сборка проекта и выполнение тестов Сборка приложения после каждого коммита Запуск юнит- и интеграционных тестов Проверка кода с помощью статического…