Базы Данных (Data Base) | SQL & NoSQL. PostgreSQL, MySQL и Big Data. Уроки для Backend и Data Engineer. Архитектура БД, Оптимизация и Design.
Базы Данных (Data Base) | SQL & NoSQL. PostgreSQL, MySQL и Big Data. Уроки для Backend и Data Engineer. Архитектура БД, Оптимизация и Design.
2 321 подписчиков · @database_info
К каналу →
❌ Антипаттерн: булевы значения как строки В таблице users встречал такое: is_active VARCHAR(5) -- значения 'true' или 'false' На первый взгляд — ерунда. На практике: – нет валида…
Читать далее →
691
Локальный запуск LLM перестал быть экспериментом Всё больше команд разворачивают модели внутри своей инфраструктуры, чтобы контролировать данные, снижать зависимость от внешних с…
Читать далее →
703

Индексы в PostgreSQL: когда и как ставить, чтобы ускорить запросы 🔍 Что такое индекс?

Индексы в PostgreSQL: когда и как ставить, чтобы ускорить запросы

🔍 Что такое индекс?
Индекс в PostgreSQL - это структура данных (обычно B-tree), позволяющая быстро находить строки по значению столбца, не сканируя всю таблицу.


⚙️ Пример создания простого B-tree-индекса

-- Ускоряем поиск по полю email
CREATE INDEX idx_users_email
ON users (email);

✅ Best Practices

1. Выбирай правильный тип

🔹 BTREE - по умолчанию, для большинства операций сравнения (=, <, >, BETWEEN).
🔹GIN/GiST - для полнотекстового поиска (tsvector), работы с массивами и геоданных.
🔹HASH - для строго равенств (=), но редко нужен.

2. Индексируй часто фильтруемые и сортируемые поля

🔹WHERE, JOIN, ORDER BY.
🔹Например, для запросов типа


SELECT * FROM orders
WHERE user_id = 42
ORDER BY created_at DESC;

создаём составной индекс:


CREATE INDEX idx_orders_user_created
ON orders (user_id, created_at DESC);

3. Не злоупотребляй

🔹Каждый индекс занимает место и замедляет INSERT/UPDATE/DELETE.
🔹Проанализируй pg_stat_user_indexes и pg_stat_user_tables через pg_stat_statements перед добавлением.

4. Используй частичные индексы
Если условие фильтрации редко меняется, можно сузить индекс:


CREATE INDEX idx_active_users_email
ON users (email)
WHERE active = true;

5. Поддерживай актуальность
Периодически делай REINDEX или VACUUM ANALYZE для больших таблиц, чтобы индекс не фрагментировался.


❌ Антипаттерн: “Индекс на всё”
Создание индекса на каждый столбец:

-- Плохо: много маленьких индексов, мало пользы, много затрат
CREATE INDEX idx1 ON table(a);
CREATE INDEX idx2 ON table(b);
CREATE INDEX idx3 ON table(c);
...
Проблемы:

🔹Большой объём хранилища.
🔹Замедление DML-операций.
🔹Планы запросов могут пропускать некоторые индексы.


💡 Вывод
Правильно подобранные и настроенные индексы - ключ к быстрой работе базы. Сосредоточься на реально востребованных столбцах, комбинируй, не забывай про обслуживание.

Сохрани этот мини-гайд, чтобы не забыть, и поделись с коллегами: какие индексы стали для тебя открытием?

#db

👉 @database_info
Получи грант до 1,35 млн руб. на обучение в магистратуре Хочешь развиваться в сфере ИТ и получить фундаментальные знания с практикой? Поступай в магистратуру Центрального универси…
Читать далее →
495
🔗 Сравнение: Типы JOIN в SQL и когда их применять Зачем понимать JOIN’ы? Правильный выбор типа соединения таблиц позволяет получать необходимые данные эффективно и избегать неожид…
Читать далее →
464
Другие главы канала «Базы Данных (Data Base) | SQL & NoSQL. PostgreSQL, MySQL и Big Data. Уроки для Backend и Data Engineer. Архитектура БД, Оптимизация и Design.»
Выберите главу, чтобы продолжить чтение
Все посты →
Глава от 16.06.2026
👩‍💻 Контейнеризация Java-приложений с Docker Приглашаем на открытый урок. 🗓 22…
👁 193 просмотров
Глава от 16.06.2026
Антипаттерн: N+1 запросов и как его избежать Что такое N+1? При выборке связанн…
👁 265 просмотров
Глава от 15.06.2026
Мини-гайд: Как не превратить индексы в PostgreSQL в ловушку для производительнос…
👁 427 просмотров
Глава от 14.06.2026
🔗 Сравнение: Типы JOIN в SQL и когда их применять Зачем понимать JOIN’ы? Правил…
👁 464 просмотров
Глава от 13.06.2026
Получи грант до 1,35 млн руб. на обучение в магистратуре Хочешь развиваться в с…
👁 495 просмотров
Глава от 10.06.2026
Локальный запуск LLM перестал быть экспериментом Всё больше команд разворачива…
👁 703 просмотров
Глава от 10.06.2026
❌ Антипаттерн: булевы значения как строки В таблице users встречал такое: is_a…
👁 691 просмотров
Глава от 09.06.2026
🔧 Mini-гайд: ускоряем JOIN-ы в больших таблицах JOIN-ы - мощный инструмент SQL,…
👁 770 просмотров
Глава от 08.06.2026
Хотите перейти в Компьютерное зрение (CV) или прокачаться до экспертного уровня?…
👁 867 просмотров

Популярные посты канала «Базы Данных (Data Base) | SQL & NoSQL. PostgreSQL, MySQL и Big Data. Уроки для Backend и Data Engineer. Архитектура БД, Оптимизация и Design.»

🚀 Подборка полезных IT каналов в Max Системное администрирование, DevOps 📌 https://max.ru/i_odmin Все для системного администратора https…
👁 5 944 просмотров
🔥 Неправильные типы данных в БД — тихий убийца производительности Одна из самых частых ошибок — выбирать тип “на всякий случай побольше”. …
👁 5 852 просмотров
Типы JOIN в SQL и когда их применять - INNER JOIN - пересечение множеств (только совпавшие строки). - LEFT JOIN - все слева + совпавшие спр…
👁 5 846 просмотров
Многопользовательская игра, похожая на DOOM, написанная на чистом SQL DOOMQL - это экспериментальный проект, который позволяет играть в DOO…
👁 5 824 просмотров
🚀 Подборка полезных IT каналов в Max Системное администрирование, DevOps 📌 https://max.ru/i_odmin Все для системного администратора https…
👁 5 804 просмотров
Антипаттерн: N+1 запросов — как заметить и починить Вы берёте список сущностей, а потом в цикле для каждой тянете связанные данные. В итоге…
👁 5 786 просмотров
🚨 Антипаттерн: Почему OFFSET убивает твою базу (и как делать пагинацию правильно) Привет! Если вы когда-нибудь реализовывали каталог товаро…
👁 5 784 просмотров
⚔️ SQL vs NoSQL: Что выбрать для вашего проекта? Выбор базы данных - одно из ключевых архитектурных решений. Нет универсальной "серебряной …
👁 5 702 просмотров
🔥 Индексы в PostgreSQL: когда они реально помогают, а когда мешают Многие ставят индексы “на всё подряд”, а потом удивляются, почему БД тор…
👁 5 644 просмотров
7 SQL-запросов, которые решают 90% всех задач на работе Каждый день одно и то же. Открываешь клиент базы данных, чтобы что-то проверить, по…
👁 5 638 просмотров
Продвинутый курс SQL за час - проще некуда Сегодня я продолжу рассказывать про SQL и мы погрузимся уже в чуть более интересные запросы, свя…
👁 5 609 просмотров
🚨 Антипаттерн: хранить пароли в базе "как есть" Да, звучит как очевидный совет, но на практике до сих пор встречаются проекты, где пароль с…
👁 5 607 просмотров
Немного юмора) #db 👉 @database_info
👁 5 575 просмотров
⚠️ Можно знать алгоритмы машинного обучения и всё равно получать плохие результаты. Большинство проблем моделей начинаются с некачественной …
👁 5 574 просмотров
Антипаттерны JOIN-ов в SQL и как их избежать JOIN - мощная штука, но может легко превратиться в генератор тормозов и дублей. Вот топ-4 лову…
👁 5 573 просмотров
🖥 Основы SQL за час - бесплатно и проще некуда Содержание: 00:00 - подготавливаем базу 04:36 - выбираем данные SELECT 08:30 - указываем тек…
👁 5 561 просмотров
5 нормальных форм баз данных, которые должен знать каждый разработчик #db 👉 @database_info
👁 5 548 просмотров
💡 Универсальная шпаргалка по SQL #db 👉 @database_info
👁 5 530 просмотров
Визуализация SQL-запроса #db 👉 @database_info
👁 5 501 просмотров
Почему индекс в PostgreSQL не всегда спасает Индексы - мощный инструмент, но не панацея. Иногда запрос с индексом работает медленнее, чем б…
👁 5 459 просмотров

Связанные темы в других каналах

Каналы из той же тематики, где часто появляются близкие сюжеты
Вся тема →
@canalmaxone
AntiCloudMod
AntiCloudMod — сообщество для тех, кто ценит свободу общения без облачной цензуры. Здесь обсуждают альтернативные мессенджеры, инструменты для приватности и децентрализов…
👥 375 118 · +72 598/7д
@WylsacomRed
Wylsacom Red
Официальный канал Wylsacom в Max. Тут всё про технологии и жизнь в ногу со временем! Номер заявления для регистрации в РКН: № 6979154178 Розыгрыши: kichaev@wylsacom.med…
👥 154 331 · +9 407/7д
@BelgorodDRONE
Информация БПЛА Белгород, Белгородский район
Канал «Информация БПЛА Белгород, Белгородский район» в мессенджере Макс предлагает свежие новости и подробности о беспилотных летательных аппаратах в Белгородском регионе…
👥 137 589 · +7 139/7д
@TikTokModCloud
TikTokModCloud
Официальные обновления стабильного мода TikTok Чат: https://clck.ru/3S6mVh По рекламе: https://iimax.ru/dim4ugan
👥 80 888 · +16 775/7д
@hitech
Hi-Tech
Оперативные новости, обзоры гаджетов, собственное видео, трансляции мировых анонсов и мероприятий По вопросам сотрудничества и размещения рекламы i.ostapenko@corp.mail.r…
👥 53 241 · -150/7д
@na_kruchok
Глент
Глент мемы Это фан-сообщество, созданное преданными поклонниками для поддержки творчества Глента. Данный канал НЕ является официальным и ведется фанатом.
👥 40 222 · +29 203/7д
🏷 Темы и теги
#db #архитектура бд #data engineer #оптимизация запросов #sql #postgresql #nosql #Технологии
📋 О канале Базы Данных (Data Base) | SQL & NoSQL. PostgreSQL, MySQL и Big Data. Уроки для Backend и Data Engineer. Архитектура БД, Оптимизация и Design.
Всё о проектировании и работе с данными. Глубокий разбор SQL (Join, Index, Query Tuning). Реляционные СУБД: Postgres, Oracle, MS SQL. NoSQL технологии: MongoDB, Redis, Cassandra, ClickHouse. Архитектура высоконагруженных систем: репликация, шардинг, CAP-теорема, ACID транзакции. Оптимизация медленных запросов. Моделирование данных и нормализация. ETL процессы и миграция.
🔍 Архив всех постов Макс
Поиск по 8,299,288 постам из 199,732 каналов
Попробовать за 1 ₽ →
Удалить пост или канал с МАКСОТЕКИ
Заявка подтверждается через бота Макс: нужно быть администратором канала и добавить бота МАКСОТЕКИ в администраторы. После проверки канал или конкретный пост скрывается с сайта.
📊 Аналитика канала «Базы Данных (Data Base) | SQL & NoSQL. PostgreSQL, MySQL и Big Data. Уроки для Backend и Data Engineer. Архитектура БД, Оптимизация и Design.» ➡️ Перейти в канал Макс
Заявка в МАКСОТЕКА
Добавьте свой канал в каталог
Зарегистрируйтесь в личном кабинете и добавьте канал за пару кликов.
Перейти в личный кабинет →

Бесплатная регистрация, быстрая модерация.