Мини-гайд: Как ускорить SELECT’ы в PostgreSQL с помощью покрытия индекса (covering index) Иногда индекс есть, а запрос всё равно тормозит. Почему? 👉 Потому что обычный индекс помогает найти строку, но потом БД всё равно лезет в таблицу, чтобы достать нужные поля. Это называется heap access — и это дорого. 📌 Решение — покрывающий индекс. Это индекс, который содержит все нужные поля прямо в себе. PostgreSQL с версии 11 умеет делать это через INCLUDE. 🔧 Пример: -- Запрос SELECT name, email FROM users WHERE status = 'active'; -- Обычный индекс CREATE INDEX idx_users_status ON users(status); -- По…
🧱 Антипаттерн: Ненормализованная схема в SQL Когда нужно «быстро запилить фичу», руки тянутся сделать одну таблицу, где и заказ, и клиент, и товары — всё в куче. Пример: CREATE TABLE orders ( order_id SERIAL PRIMARY KEY, customer_name TEXT, customer_email TEXT, product_1_name TEXT, product_1_price NUMERIC, product_2_name TEXT, product_2_price NUMERIC ); 😰 Что пойдет не так: – Дублирование данных — имя клиента повторяется в каждом заказе. – Нет масштабируемости — максимум 2 продукта? А если будет 3? – Трудности с запросами — попробуй посчитать топ-5 товаров. Удачи. – Адские апдейты — изменить …
⚡Когда аналитика разнесена по отдельным системам, бизнес долго ждет данные и платит за лишние кластеры, ETL и серверы. 🐘Postgres Pro AXE — аналитическая СУБД от Postgres Professional на знакомом PostgreSQL. Ускоряет доставку аналитики и снижает TCO на хранение и обработку данных. ✔️До 20 раз быстрее Greenplum На сложных запросах в тестах ClickBench, TPC-H и TPC-DS. ✔️До 10 раз меньше ресурсов При сопоставимой нагрузке с MPP-аналогами. ✔️Аналитика ближе к рабочим данным Postgres Pro AXE работает как отдельная аналитическая СУБД или расширяет Postgres Pro Enterprise аналитическими возможностями…
🔗 Мини-гайд по JOIN-ам в SQL JOIN — мощнейший инструмент в арсенале SQL. Но многие путаются в типах. Разбираем на пальцах: 🔸 INNER JOIN Что делает: оставляет только совпадающие строки из обеих таблиц. Когда использовать: когда нужны только те записи, у которых есть соответствие. SELECT * FROM orders o INNER JOIN customers c ON o.customer_id = c.id; 🧠 Best practice: это дефолтный выбор. Работает быстрее, т.к. отбрасывает всё "лишнее". 🔸 LEFT JOIN Что делает: возвращает все строки из левой таблицы и NULL из правой, если нет совпадения. Когда использовать: когда нужно сохранить всё из первой таб…
У вас на сайте соблюдены правила обработки ПДн? Читайте в карточках, как регулятор проверит это. Больше полезной информации в посте в канале Альфы — подписывайтесь! Канал полезен тем, кто разрабатывает документы по ИБ для объектов КИИ, ПДн, ГИС и других систем. В постах эксперты разъясняют требования ФСТЭК и Роскомнадзора. Вступайте: https://tglink.io/300b33a17dd87b?erid=2W5zFJ1RsCV #реклама О рекламодателе