Назовите реальные проблемы и объясните диагностику: N+1, слишком долгие транзакции, исчерпание пула, неожиданную lazy loading или ошибки жизненного цикла Session. Важнее разбор причины, чем список терминов.
Engine управляет взаимодействием с СУБД и пулом соединений, а Session — ORM-объектами и единицей работы. Session получает соединение из пула, когда действительно требуется обратиться к базе.
Для денежных сумм обычно выбирают точный DECIMAL/NUMERIC с заданной точностью либо целое число минимальных денежных единиц. FLOAT/DOUBLE нежелательны из-за ошибок двоичного представления дробей.
WAL позволяет восстанавливать изменения после сбоя, не записывая каждую изменённую страницу данных на диск при каждом commit. Сначала сохраняется журнал, а страницы можно записать позже.
Сначала воспроизвожу запрос с реальными параметрами и смотрю план выполнения, фактическое время, число строк и ожидания. Затем проверяю индексы, оценки кардинальности, объём чтения и блокировки.
Identity Map связывает ORM-идентичность строки с одним живым persistent-объектом внутри Session. Повторная загрузка той же сущности использует этот объект, чтобы не появлялись конфликтующие копии состояния.
ORM работает с моделями, связями и состоянием объектов, формируя SQL за вас. Чистый SQL задаёт запрос непосредственно; SQLAlchemy также имеет Core, не сводящийся к ORM.
Используйте совместимые этапы expand–migrate–contract: сначала добавьте поддерживаемую старым кодом схему, затем перенесите данные и переключите приложение, а удаление старого выполните позднее.
Консенсус позволяет узлам согласовать один порядок изменений несмотря на отдельные отказы. В Raft лидер реплицирует журнал, записи фиксируются по правилам большинства, а сроки полномочий помогают безопасно менять лидера.
Начните с измерения: какие запросы и ресурсы ограничивают систему. Затем оптимизируйте запросы, индексы, объём данных и транзакции; реплики, разделение нагрузки и шардирование рассматривайте после простых мер.
Если данные уже в PostgreSQL и важны SQL, транзакции и простая эксплуатация, начните с оценки pgvector. Qdrant уместен как отдельный специализированный слой векторного поиска; выбор подтверждают нагрузкой.
ORM отображает сущности приложения на таблицы и помогает строить запросы, связи и изменения через объектный API. Она снижает шаблонный код, но не отменяет SQL, транзакции и анализ планов.