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

Как понять что запросы попадает в индекс

В PostgreSQL можно проверить, используется ли индекс для запроса с помощью EXPLAIN ANALYZE. Если в выводе видно Index Scan или Bitmap Index Scan, значит индекс используется. Пример:

sql
EXPLAIN ANALYZE SELECT * FROM users WHERE email = 'test@example.com';

Если создан индекс на поле email, в выводе будет что-то вроде:

text
Index Scan using idx_users_email on users  (cost=0.42..8.44 rows=1 width=68)

В Django ORM можно проверить запросы через connection.queries:

python
from django.db import connection
User.objects.filter(email='test@example.com').first()
print(connection.queries[-1]['sql'])

Также полезные инструменты:

  • pg_stat_all_indexes - статистика использования индексов
  • django-debug-toolbar для анализа запросов в веб-интерфейсе

Если индекс не используется, возможные причины:

  1. Низкая селективность (мало уникальных значений)
  2. Несоответствие типов данных
  3. Слишком маленькая таблица (оптимизатор выбирает seq scan)
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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