> Какие операции выигрывают от B-tree индекса, а какие нет (Python)
Уровень: senior · Роль: backend · Язык: Python · Категория: Технические вопросы
Компании: Notamedia, TradingView
Стек: Python
> Пример ответа
B-tree индексы отлично подходят для операций точного поиска (WHERE id = 5), диапазонных запросов (WHERE age BETWEEN 20 AND 30), сортировки (ORDER BY), а также для GROUP BY и соединений по ключам - благодаря сбалансированной структуре и упорядоченности узлов.
Однако они неэффективны для:
- Полнотекстового поиска (нужен GIN или специализированный индекс).
- Поиска по шаблону с ведущим wildcard (
LIKE '%text'), так как B-tree не может использовать префиксное сравнение. - Операций с массивами или JSONB (требуются GIN/GiST).
- Частых вставок/обновлений с высокой конкурентностью на одном узле (может возникнуть блокировка страницы).
- Поиска по хэш-значениям (лучше использовать hash-индекс).
Пример на Python с SQLAlchemy: для User.name LIKE 'John%' B-tree сработает, а для '%ohn' - нет, потребуется ILIKE с триграмным индексом.
> Похожие задачи по Python
Как реализуются атрибуты в классах Python
В чем разница между обычным классом Python, dataclass и Pydantic
Какими версиями Python вы пользовались?
Работали ли вы с брокерами сообщений, такими как Kafka или RabbitMQ
> Похожие задачи по backend
Как реализуются атрибуты в классах Python
В чем разница между обычным классом Python, dataclass и Pydantic
Какими версиями Python вы пользовались?
Работали ли вы с брокерами сообщений, такими как Kafka или RabbitMQ
> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?
Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью