TGViewer
Channel Public Channel
SQL Ready | Базы Данных

SQL Ready | Базы Данных

@sql_ready

Авторский канал про Базы Данных и SQL
Ресурсы, гайды, задачи, шпаргалки.
Информация ежедневно пополняется!

Cотрудничество: @energy_c

РКН: https://clck.ru/3QREBc
Subscribers
17.5K
Photos
1.4K
Videos
114
Links
765

Showing posts older than #1457 · Back to latest

Older Posts 7 shown
Post #1449 2.26K
🖥 Индексы — ключ к быстрому SQL. Особенно полезны при большом объёме данных и частых фильтрациях!

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

➡ SQL Ready | #шпора
  • ❤ 13
  • 🔥 9
  • 👍 6
  • 🤝 3
Post #1447 2.53K
📂 Напоминалка для работы с индексами в базах данных!

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

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

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

➡ SQL Ready | #ресурс
  • 👍 14
  • ❤ 8
  • 🔥 7
Post #1442 2.03K
🖥 MVCC — что реально происходит при UPDATE!

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

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

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

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


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

📣 SQL Ready | #гайд
  • 🔥 19
  • 🤝 9
  • 👍 7
Post #1440 1.95K
Нужно сделать очередь задач, чтобы несколько воркеров могли брать задания параллельно?

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 | #совет
  • 🔥 15
  • ❤ 9
  • 👍 8
Post #1435 2.03K
🖥 Функции для работы с временными интервалами и диапазонами в MySQL!

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

➡️ SQL Ready | #шпора
  • 👍 14
  • ❤ 10
  • 🔥 10
Post #1433 2.06K
👩‍💻 Знал ли ты, что можно открывать проекты прямо на сервере через VS Code?

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

➡️ SQL Ready | #vscode
  • 👍 14
  • ❤ 10
  • 🔥 9
  • 🤝 1
Post #1428 2.2K
🖥 Генерация данных прямо в базе!

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

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

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

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

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


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

➡️ SQL Ready | #гайд
  • 👍 14
  • 🔥 8
  • ❤ 7
  • 🤝 2
Older posts →
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →