Встречается на собеседованиях • сегодня
На какие типы полей не надо писать индекс
Индексы не стоит создавать для полей с низкой селективностью (мало уникальных значений), так как они неэффективны:
- Логические флаги (True/False)
- Перечисляемые типы с малым числом вариантов (например, статусы "new", "in_progress", "done")
- Поля с NULL значениями (если NULL преобладает)
Также не индексируют:
- Часто изменяемые поля - индексы замедляют INSERT/UPDATE
- Очень большие значения (TEXT/BLOB) - индексы занимают много места
- Поля, по которым не выполняется поиск/сортировка
Пример плохого индекса:
python
# Неэффективный индекс для поля с 3 вариантами
class Order(models.Model):
status = models.CharField(max_length=20, choices=STATUS_CHOICES)
class Meta:
indexes = [
models.Index(fields=['status']), # Плохо - мало уникальных значений
]
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы