Встречается на 1% собеседований по Python
Как создаются индексы в 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
интервью вопросы и ответы