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

Как оптимизировал запросы в базе данных

Для оптимизации запросов в БД на Python я использовал следующие подходы:

  1. Индексация – создание индексов для часто используемых полей в условиях WHERE и JOIN:
python
# Django example
class User(models.Model):
    username = models.CharField(max_length=100, db_index=True)
    email = models.CharField(max_length=100, unique=True)
  1. Выборка только нужных полей вместо SELECT *:
python
# Неоптимально
users = User.objects.all()

# Оптимально
users = User.objects.only('id', 'username')
  1. Пакетные операции для массовых вставок/обновлений:
python
# Bulk create
User.objects.bulk_create([User(...), User(...)])
  1. Использование select_related/prefetch_related для уменьшения количества запросов при работе с ForeignKey/ManyToMany.

  2. Кэширование частых запросов с помощью Redis/Memcached.

  3. Анализ EXPLAIN для понимания плана выполнения запроса и поиска узких мест.

Для сложных запросов иногда лучше использовать сырые SQL с оптимальными JOIN вместо нескольких ORM-запросов.

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

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

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

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