На какие типы полей не надо писать индекс

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