Что такое оптимизация запросов в БД

Python Senior Без компании
Что такое оптимизация запросов в БД
Ответы
Оптимизация запросов в БД — это процесс улучшения производительности SQL-запросов для уменьшения времени выполнения и нагрузки на сервер. Основные методы: - **Индексы** — ускорение поиска данных (но замедляют вставку/обновление) ``` # Пример создания индекса в SQL CREATE INDEX idx_user_email ON users(email); ``` - **EXPLAIN** — анализ плана выполнения запроса ``` EXPLAIN SELECT * FROM orders WHERE user_id = 100; ``` - Оптимизация JOIN-ов: - Использование INNER JOIN вместо OUTER, где возможно - Фильтрация до соединения таблиц - Ограничение выборки: - Использование LIMIT - Выбор только нужных столбцов (не SELECT *) - Кэширование частых запросов - Нормализация/денормализация таблиц в зависимости от сценариев использования - Пакетная обработка вместо множества мелких запросов Для ORM (например Django): ``` # Плохо: N+1 проблема users = User.objects.all() for user in users: print(user.profile.age) # Отдельный запрос для каждого пользователя # Хорошо: select_related users = User.objects.select_related('profile').all() ``` Оптимизация требует баланса между скоростью чтения и затратами на запись/обновление данных.