Select the ten shortest rows first, then select the longest row from that subset. Add an ID tie-breaker and decide how NULL durations and tables with fewer than ten videos should behave.
Это WAL — журнал предзаписи, хранящий записи изменений. Он позволяет восстановить состояние после сбоя и передавать изменения физическим репликам; это не отдельная копия всех таблиц.
B-Tree позволяет находить нужные ключи и диапазоны без полного просмотра таблицы и может помогать сортировке. Цена — дополнительное место и работа при вставках, обновлениях и удалениях.
Назовите реально использованные инструменты миграций и объясните, как они хранят версии схемы и применяют изменения. Примеры: Django migrations, Alembic, Flyway или Liquibase.
MVCC хранит версии строк и определяет их видимость по snapshot и состоянию транзакций. xmin связан с созданием версии, а xmax — с её удалением, заменой или блокировочными деталями.
Используйте LEFT JOIN и отберите строки, у которых ID присоединённого заказа равен NULL. Это отсутствие совпадения, а не заказ с пустым идентификатором.
EXPLAIN показывает оценённый план без выполнения запроса, а EXPLAIN ANALYZE действительно выполняет его и добавляет фактические измерения. Это особенно важно для изменяющих запросов.
При создании класса ORM анализирует объявленные поля и формирует метаданные отображения. Django делает это через ModelBase; в SQLAlchemy механизм зависит от выбранного declarative API и версии.
PostgreSQL использует циклическое пространство обычных transaction ID. Старые версии строк нужно замораживать, иначе сравнение видимости станет небезопасным; anti-wraparound VACUUM предотвращает это.
Сгруппируйте строки по name и last_name и оставьте группы с COUNT(*) = 1. DISTINCT не подходит: он убирает повторы, а не исключает повторяющиеся комбинации.
Индекс по выражению хранит вычисленный ключ, например lower(email). Он ускоряет подходящие запросы, но требует вычисления и поддержки индексных записей при изменении данных.
Transient — новый объект вне Session; Pending — добавлен и ждёт INSERT; Persistent — связан с Session и строкой БД; Detached — имеет идентичность, но больше не связан с Session.