Встречается на собеседованиях • сегодня

Как можно оптимизировать SQL запрос

Оптимизация SQL запросов в Python включает несколько ключевых подходов:

  1. Индексы – добавьте индексы на часто используемые столбцы в условиях WHERE и JOIN:
python
# Пример создания индекса через raw SQL в Django
from django.db import connection
with connection.cursor() as cursor:
    cursor.execute("CREATE INDEX idx_name ON users(name)")
  1. Выборка только нужных полей – избегайте SELECT *:
python
# Django ORM
User.objects.only('id', 'name').filter(active=True)
  1. JOIN вместо подзапросов – подзапросы часто менее эффективны:
python
# Плохо
User.objects.filter(id__in=Order.objects.filter(price__gt=100).values('user_id'))

# Лучше
User.objects.select_related('orders').filter(orders__price__gt=100)
  1. Пакетная обработка – используйте bulk_create/update для массовых операций.

  2. EXPLAIN – анализируйте план выполнения запроса:

python
with connection.cursor() as cursor:
    cursor.execute("EXPLAIN ANALYZE SELECT * FROM users WHERE age > 30")
    print(cursor.fetchall())
  1. Кэширование – кэшируйте результаты частых запросов.

  2. Лимиты – добавляйте LIMIT к запросам, если нужна только часть данных.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы