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
😁30👍6🔥31
🖥 Генерация данных прямо в базе!

GENERATE_SERIES превращает PostgreSQL в гибкий источник диапазонов: дат, чисел, временных интервалов без таблиц и вспомогательных скриптов.

В сегодняшнем гайде:
Строим календарь напрямую в запросе;

Закрываем пропуски в отчётах и логах;

Генерируем тестовые данные и последовательности для расчётов;

Создаём временные ряды и интервалы.


Приём, который экономит время, упрощает аналитику и делает запросы выразительнее.

➡️ SQL Ready | #гайд
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14🔥87🤝2
This media is not supported in your browser
VIEW IN TELEGRAM
👩‍💻 Знал ли ты, что можно открывать проекты прямо на сервере через VS Code?

Remote – SSH даёт возможность с лёгкостью получать доступ, редактировать и передавать файлы на удалённый сервер, при этом оставаясь в знакомом интерфейсе VS Code.

➡️ SQL Ready | #vscode
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1410🔥9🤝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
👍1410🔥10
Нужно сделать очередь задач, чтобы несколько воркеров могли брать задания параллельно?

FOR UPDATE SKIP LOCKED — флаг, который позволяет захватить строку, а занятые другими процессами — пропустить, не ожидая их.
SELECT id
FROM jobs
WHERE taken_at IS NULL
ORDER BY created_at
FOR UPDATE SKIP LOCKED
LIMIT 1;


Сделаем атомарный захват задачи:
UPDATE jobs
SET taken_at = now()
WHERE id = ( ... тот самый SELECT ... )
RETURNING *;


Если задача взята, она возвращается. Если другой воркер схватил её раньше — SELECT просто пропустит её.

Можно добавить таймаут на незавершённые задачи:
WHERE taken_at IS NULL
OR taken_at < now() - interval '5 minutes'


🔥 Это превращает таблицу в настоящую надёжную очередь.

➡️ SQL Ready | #совет
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥159👍8
🖥 MVCC — что реально происходит при UPDATE!

MVCC объясняет, почему строки в базе не перезаписываются, а накапливают версии и почему таблица может расти, даже если количество записей не изменилось.

Сегодня в гайде:
Как возникают версии строк при UPDATE;

Почему длинные транзакции удерживают старые данные;

Откуда появляется bloat и как он влияет на индексы.


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

📣 SQL Ready | #гайд
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥19🤝9👍7
📂 Напоминалка для работы с индексами в базах данных!

Например, clustered index определяет физический порядок строк в таблице, а secondary index позволяет эффективно искать по неуникальным полям.

На картинке — основные типы индексов, которые должен знать каждый разработчик, чтобы уверенно работать с производительностью запросов.

Сохрани, чтобы не забыть!

SQL Ready | #ресурс
Please open Telegram to view this post
VIEW IN TELEGRAM
👍148🔥7
🖥 Индексы — ключ к быстрому SQL. Особенно полезны при большом объёме данных и частых фильтрациях!

Правильно выбранный тип и структура индекса значительно ускоряют SELECT-запросы, но могут замедлять INSERT и UPDATE. Всегда проверяй эффективность через EXPLAIN ANALYZE.

SQL Ready | #шпора
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
13🔥9👍6🤝3