Освобождает ли GIL соединение с базой данных при аварийном завершении задачи? GIL (Global Interpreter Lock) — механизм синхронизации, используемый в CPython. GIL напрямую не управляет ресурсами и соединениями с базой…
Как PostgreSQL выполняет оператор UPDATE? Система управления реляционной БД PostgreSQL не изменяет строки непосредственно на месте Используется механизм MVCC: прежняя версия строки помечается удалённой Формируется…
Как Redis-кеширование используется для оптимизации? Redis — это In-Memory хранилище с минимальной задержкой Его применяют для хранения данных, которые запрашиваются особенно часто Наиболее распространённый вариант —…
Как query planner помогает выявлять причины проблем с производительностью? исследование плана выполнения SQL-операций обнаружение узких мест: полнотекстовый скан, джойны, индексы оценка стоимости (cost) и расчетного…
Пример применения декораторов в автотестах для предусловий и постусловий Декораторы позволяют задавать предусловия: подготавливать тестовую среду, инициализировать данные и устанавливать соединение с БД. С их помощью…
способ горизонтального разделения таблиц в БД данные распределяются по подмножествам (партициям) на основании ключа каждая такая часть отдельно хранится и обрабатывается повышает производительность запросов и операций…
Как устроен сборщик мусора в Python? управление памятью основано на подсчёте ссылок (reference counting) для каждого объекта ведётся счётчик ссылок; когда он становится равен 0, объект удаляется освобождение памяти…
Типичный процесс непрерывной интеграции (CI pipeline) Автоматическая сборка проекта и выполнение тестов Сборка приложения после каждого коммита Запуск юнит- и интеграционных тестов Проверка кода с помощью статического…
Плюсы и минусы применения ORM (SQLAlchemy) ORM представляет собой уровень абстракции над SQL для работы с БД Преимущества: позволяет взаимодействовать с данными через объекты автоматически формирует SQL и тем самым…
Какой уровень покрытия кода тестами можно считать достаточным? Контекст: оценка качества покрытия при тестировании ПО Стремиться можно к 100%, однако это скорее идеальная цель, которую редко удаётся достичь На…
В CPython подсчёт ссылок служит основным механизмом управления памятью. Напрямую отключить его нельзя, если не модифицировать сам интерпретатор. Есть альтернативный вариант: gc.disable() отключает сборщик циклических…
В современных JVM управление GC обычно доступно лишь в ограниченном объёме и зависит от настроек В большинстве платформ, включая Java и .NET, полностью отключить поколенческий GC нельзя При этом разрешается изменить…