Писал ли индексы в БД
Python
Senior
VK
Писал ли индексы в БД
Ответы
Да, писал индексы в БД. Они ускоряют поиск и сортировку данных, но замедляют вставку и обновление.
**Пример с SQLAlchemy (PostgreSQL):**
```
from sqlalchemy import create_engine, Column, Integer, String, Index
from sqlalchemy.ext.declarative import declarative_base
Base = declarative_base()
class User(Base):
__tablename__ = 'users'
id = Column(Integer, primary_key=True)
email = Column(String, unique=True)
name = Column(String)
# Создание индекса для ускорения поиска по имени
Index('idx_name', User.name)
engine = create_engine('postgresql://user:pass@localhost/db')
Base.metadata.create_all(engine)
```
**Когда использовать:**
- Частые `WHERE`, `JOIN`, `ORDER BY` по полю.
- Уникальные ограничения (`unique=True`).
**Когда избегать:**
- Частые `INSERT/UPDATE`.
- Маленькие таблицы.
Выбор индексов зависит от нагрузки и запросов.