Встречается на собеседованиях • сегодня
Как создаются индексы в Django ORM
В Django ORM индексы создаются через модель Meta класса или с помощью db_index в полях.
1. Через db_index в поле:
python
class User(models.Model):
username = models.CharField(max_length=100, db_index=True)Автоматически создаст индекс для username.
2. Через Meta.indexes:
python
class User(models.Model):
first_name = models.CharField(max_length=100)
last_name = models.CharField(max_length=100)
text
class Meta:
indexes = [
models.Index(fields=['first_name']),
models.Index(fields=['last_name', 'first_name'], name='full_name_idx'),
]text
Можно создавать составные индексы и задавать им имена.
**3. Функциональные индексы (Django 3.2+):**
```python
from django.db.models.functions import Lower
class Meta:
indexes = [
models.Index(Lower('username'), name='username_lower_idx'),
]Для сложных условий (например, регистронезависимый поиск).
Примечание:
- Индексы улучшают поиск, но замедляют вставку/обновление.
- Для PostgreSQL можно использовать
models.Index(fields=[...], opclasses=[...])для специфичных типов индексов.

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы