SQL Ready | Базы Данных
15.4K subscribers
1.2K photos
66 videos
2 files
579 links
Авторский канал про Базы Данных и SQL
Ресурсы, гайды, задачи, шпаргалки.
Информация ежедневно пополняется!

Автор: @energy_it

РКН: https://clck.ru/3QREBc

Реклама на бирже: https://telega.in/c/sql_ready
Download Telegram
🖥 Oracle — псевдоколонки и их возможности!

Эта шпаргалка собирает основные псевдоколонки Oracle и показывает, как использовать их на практике: нумерация строк, доступ к физическому адресу, работа с иерархиями, определение листовых/корневых узлов, генерация UUID, отслеживание изменений по SCN и просмотр историй строк.

➡️ SQL Ready | #шпора
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍15🔥107🤝2
🔥24👍97😁1🤝1
🖥 Очередь без конфликтов!

SKIP LOCKED позволяет управлять конкурентным доступом на уровне строки, а не всей таблицы, поэтому воркеры не ждут друг друга и не создают лишних блокировок.

Сегодня в гайде:
 Забираем задачи параллельно и без конфликтов;

 Делаем атомарный “взять + обновить” в одном запросе;

 Распределяем очереди между воркерами под высокой нагрузкой.


Этот прием делает обработку задач масштабируемой даже при высоком параллелизме.

➡️ SQL Ready | #гайд
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥1911👍6🤝1
Сгенерированные колонки в PostgreSQL: ускоряем фильтры без лишних вычислений!

Когда одно и то же выражение постоянно считается в WHERE, запросы тормозят. В PostgreSQL это решается GENERATED ALWAYS AS … STORED — выражение вычисляется один раз и хранится как обычное поле.

Создаём таблицу с материализованным выражением:
CREATE TABLE events (
id BIGSERIAL PRIMARY KEY,
payload JSONB NOT NULL,
event_type TEXT GENERATED ALWAYS AS (payload->>'type') STORED
);


Теперь event_type больше не вычисляется на лету — значение лежит прямо в строке.

Фильтрация становится проще и быстрее:
SELECT id
FROM events
WHERE event_type = 'purchase';


Добавляем индекс:
CREATE INDEX idx_events_event_type
ON events(event_type);


Проверяем:
EXPLAIN ANALYZE
SELECT id
FROM events
WHERE event_type = 'purchase';


🔥 Должен быть Index Scan, без тяжёлых операций над JSONB. Сгенерированные колонки отлично подходят для повторяющихся вычислений:

➡️ SQL Ready | #практика
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥15👍107
🖥 Находим маршруты с пересадками (мини-навигация в базе)

Соберём все возможные маршруты из аэропорта A в B — прямые, через одну пересадку и через две, без рекурсий и сложных конструкций.

В этом посте:
Проверим, существует ли прямой путь, простой случай, но часто самый важный;

Расширим поиск и найдём маршруты вида A => X => B, где X — автоматически вычисленная пересадка;

Построим цепочки A => X => Y => B, что по сути является маленьким обходом графа.


Это базовая техника работы с графами, подходит для поиска зависимостей, цепочек действий и любых последовательностей.

➡️ SQL Ready | #задача
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥218👍8🤝1
Нужно получить список всех дней, даже тех, которых нет в таблице?

Например, показать дни без заказов. PostgreSQL умеет генерировать последовательности прямо в запросе:
SELECT * 
FROM generate_series('2025-01-01', '2025-01-31', interval '1 day');


generate_series() создаёт виртуальную таблицу с шагом по дате.
Никаких временных таблиц, никаких циклов.

Теперь можно объединить это с данными:
SELECT g.day, COUNT(o.id) AS total
FROM generate_series('2025-01-01', '2025-01-31', interval '1 day') AS g(day)
LEFT JOIN orders o ON date(o.created_at) = g.day
GROUP BY g.day
ORDER BY g.day;


🔥 Пригодится для аналитики временных рядов,
заполнения пропусков и построения отчётов!

➡️ SQL Ready | #совет
Please open Telegram to view this post
VIEW IN TELEGRAM
🤝149👍7🔥1
🖥 Функции для работы с датой и временем в MySQL!

В этой шпаргалке собраны функции MySQL, применяемые для получения отдельных компонентов даты и времени: года, месяца, дня, часов, минут, секунд, номера недели и дня недели. Эти операции используются в большинстве рабочих запросов — от фильтрации и группировки данных до подготовки отчётов и временной аналитики.

➡️ SQL Ready | #шпора
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍20🤝97