Какие индексы применял на практике
Python
Middle
Без компании
Какие индексы применял на практике
Ответы
На практике чаще всего использовал следующие типы индексов в PostgreSQL и MySQL:
- **B-tree** – стандартный индекс для большинства запросов с равенством и диапазонами:
```
CREATE INDEX idx_users_email ON users(email);
```
- **Partial indexes** – для ускорения запросов по подмножеству данных:
```
CREATE INDEX idx_active_orders ON orders(status) WHERE status = 'active';
```
- **Composite indexes** – для запросов с несколькими условиями (важен порядок столбцов):
```
CREATE INDEX idx_user_activity ON logs(user_id, created_at);
```
- **Unique indexes** – для обеспечения уникальности:
```
CREATE UNIQUE INDEX idx_unique_username ON users(username);
```
- **GIN/GiST** – для полнотекстового поиска и JSON данных в PostgreSQL:
```
CREATE INDEX idx_gin_content ON articles USING gin(to_tsvector('english', content));
```
При выборе индексов всегда анализировал EXPLAIN запросов и учитывал trade-off между скоростью выборки и накладными расходами на вставку/обновление.