Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Задачи

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад
Вопрос про Postgres: raw, sql

В каких случаях стоит использовать сырые SQL-запросы

Вопрос проверяет умение осознанно отказаться от ORM в пользу более низкоуровневого и контролируемого решения.

Короткий ответ

Сырые SQL-запросы стоит использовать, когда ORM становится ограничением. Это актуально для сложных JOIN-ов и аналитических запросов. Также SQL нужен при оптимизации производительности. Он позволяет использовать специфические возможности базы данных. Важно применять его аккуратно и безопасно.

Длинный ответ

Хотя ORM сильно упрощает работу с базой данных, существуют ситуации, когда его использование становится неэффективным.

Основные случаи использования сырого SQL

Перед переходом на SQL важно понимать, какую проблему вы решаете.

1. Сложные запросы

ORM плохо справляется с:

  • многоуровневыми JOIN-ами

  • подзапросами

  • оконными функциями

SELECT user_id, COUNT(*) OVER (PARTITION BY user_id)
FROM orders;

Такие запросы:

  • проще читать на SQL

  • легче оптимизировать

  • понятнее анализировать

2. Оптимизация производительности

SQL позволяет:

  • точно управлять индексами

  • использовать EXPLAIN

  • писать более эффективные запросы

ORM может генерировать избыточные запросы без вашего ведома.

3. Использование специфичных возможностей БД

Некоторые возможности:

  • CTE

  • JSON-функции

  • оконные функции

  • специфические типы данных

Часто либо плохо поддерживаются ORM, либо не поддерживаются вообще.

4. Массовые операции

При:

  • bulk insert

  • batch update

  • аналитических отчетах

сырой SQL обычно быстрее и понятнее.

Риски использования

При работе с SQL важно:

  • использовать параметризацию

  • избегать SQL-инъекций

  • покрывать код тестами

Вывод

Сырые SQL-запросы стоит использовать там, где важны контроль и производительность, но не превращать их в основной стиль работы без необходимости.

  • Аватар

    Python Guru

    Sergey Filichkin

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.

Уровень

  • Рейтинг:

    5

  • Сложность:

    6

Навыки

  • Postgres

    Postgres

Ключевые слова

#raw

#sql

Подпишись на Python Developer в телеграм

  • Аватар

    Python Guru

    Sergey Filichkin

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.