Приходилось ли анализировать планы запросов в БД

Python Senior Мой Офис
Приходилось ли анализировать планы запросов в БД
Ответы
Да, приходилось. В PostgreSQL для анализа планов запросов использую `EXPLAIN ANALYZE`, который показывает реальный план выполнения и статистику. В Django можно использовать `connection.queries` для просмотра сгенерированных SQL-запросов. Пример анализа в PostgreSQL: ``` EXPLAIN ANALYZE SELECT * FROM users WHERE age > 30; ``` В Django ORM для оптимизации: ``` from django.db import connection # До оптимизации users = User.objects.filter(age__gt=30) print(connection.queries) # После оптимизации - используем select_related/prefetch_related optimized = User.objects.filter(age__gt=30).select_related('profile') ``` Ключевые моменты при анализе: - Ищем Seq Scan (линейное сканирование), которое можно заменить на Index Scan - Обращаем внимание на стоимость операций (cost) - Проверяем наличие лишних JOIN или подзапросов - Смотрим на количество обрабатываемых строк (rows)