TGStat
TGStat
Введите текст для поиска
Расширенный поиск каналов
  • flag Russian
    Язык сайта
    flag Russian flag English flag Uzbek
  • Вход на сайт
  • Каталог
    Каталог каналов и чатов Региональные подборки Тематические подборки Платные каналы Поиск каналов
    Добавить канал/чат
  • Рейтинги
    Рейтинг каналов Рейтинг чатов Рейтинг публикаций
    Рейтинги брендов и персон
  • Аналитика
  • Поиск по публикациям
  • Мониторинг Telegram
  • Продвижение
    Реклама через Яндекс Бизнес Реклама в каналах через TGStat Agency Реклама на сайте TGStat.ru
Твой кролик писал

15 Jul, 15:59

Открыть в Telegram Поделиться Пожаловаться

Репост из: Burmistrov - It и около
Индексы в базах данных — шпаргалка для системного аналитика

На технических собеседованиях вопросы про индексы задают регулярно — и не только DBA. Системный аналитик, архитектор и даже старший бизнес-аналитик должен уметь объяснить, почему на определённом запросе «всё лагает», и предложить решение. Именно здесь часто ждут ответ про индексы.

Блок про индексы обычно идет после общего блока про базы данных и до блока с написанием SQL запросов.

Что такое индекс?
Отдельная структура, которая позволяет базе не читать всю таблицу, а сразу находить нужные строки. Как содержание в книге.

Главный компромисс индексов
🟢 SELECT работает быстрее
🔴 INSERT / UPDATE / DELETE медленнее, каждый индекс надо обновлять при каждом изменении строки

Какие бывают типы индексов

➖B-tree — универсальный, работает для =, , BETWEEN, ORDER BY. По умолчанию в большинстве СУБД
➖Hash — только точное равенство =, очень быстро, но больше ни для чего
➖GIN — массивы, JSONB, полнотекстовый поиск
➖BRIN — огромные таблицы с монотонной вставкой (логи, события)
➖Составной — несколько колонок; порядок критичен — сначала =, потом интервал
➖Частичный — индексирует только часть строк: WHERE status = 'pending'`
➖Покрывающий — включает все нужные SELECT колонки через INCLUDE, исключает обращение к таблице

Когда индекс НЕ нужен
➖Таблица маленькая
➖Столбец с низкой кардинальностью: is_active, gender
➖Запрос LIKE '%text%' — B-tree не поможет
➖Функция над колонкой: WHERE YEAR(created_at) = 2026 — индекс не используется
➖Таблица пишется очень активно, а читается редко

Правило для составного индекса
1. Колонки на равенство
2. Колонки на период
3. Сортировка

Пример для запроса
WHERE status = ? AND created_at >= ? ORDER BY priority


Полная статья с примерами, антипаттернами на сайте: https://bv-dev.ru/indexes-interview-prep/

#ГотовимсяКСобеседованию

8 0 0 2
Каталог
Каталог каналов и чатов Подборки каналов Поиск каналов Добавить канал/чат
Рейтинги
Рейтинг каналов Telegram Рейтинг чатов Telegram Рейтинг публикаций Рейтинги брендов и персон
API
API статистики API поиска публикаций API Callback
Наши каналы
@TGStat @TGStat_Chat @telepulse @TGStatAPI
Почитать
Академия TGStat Исследование Telegram 2019 Исследование Telegram 2021 Исследование Telegram 2023
Контакты
Справочный центр Поддержка Почта Вакансии
Всякая всячина
Пользовательское соглашение Политика конфиденциальности Публичная оферта
Наши боты
@TGStat_Bot @SearcheeBot @TGAlertsBot @tg_analytics_bot @TGStatChatBot