SQL for junior
29 subscribers
3 photos
SQL для начинающих. Здесь ты найдешь уроки, советы, практические примеры и ответы на вопросы, чтобы стать SQL-профи с нуля.
Download Telegram
#SQLAntiPattern: Многократные запросы вместо одного

Частая ошибка в коде приложений - множество отдельных запросов вместо одного:
#  Плохо: N+1 запрос
users = db.query("SELECT * FROM users WHERE active = 1")
for user in users:
orders = db.query(f"SELECT * FROM orders WHERE user_id = {user.id}")
# Обработка каждого пользователя и его заказов


Правильное решение - один запрос с JOIN:
#  Хорошо: один запрос
results = db.query("""
SELECT u.*, o.*
FROM users u
LEFT JOIN orders o ON u.id = o.user_id
WHERE u.active = 1
""")

# Группировка результатов в Python
users_with_orders = {}
for row in results:
# Логика группировки заказов по пользователям


💡 Проблема N+1 запросов - одна из главных причин медленной работы приложений!

#NPlus1Problem #ApplicationPerformance
1💘1