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 #1324 · Back to latest

Older Posts 10 shown
Post #1322 2.01K
Ускоряй отчёты с материализованными представлениями!

Когда отчёты считаются минутами, а данные почти не меняются, решение может быть в кэшировании результата.

Используй материализованное представление (как VIEW, но результат хранится физически в таблице):
CREATE MATERIALIZED VIEW daily_stats AS
SELECT date(created_at) AS day,
COUNT(*) AS total_orders
FROM orders
GROUP BY 1;

CREATE UNIQUE INDEX ON daily_stats(day); -- нужно для CONCURRENTLY


Обновлять можно вручную или по расписанию (cron, pg_cron):
REFRESH MATERIALIZED VIEW_stats;


А если нужно без блокировок чтения:
REFRESH MATERIALIZED VIEW CONCURRENTLY daily_stats;


🔥 Помни: concurrently медленнее и требует индекс, но позволяет читать данные во время обновления.

➡️ SQL Ready | #совет
  • ❤ 17
  • 👍 8
  • 🔥 8
  • 🤝 1
Post #1317 2.08K
🖥 Partitioning — фундамент для больших таблиц!

Партиционирование позволяет разбить данные по логике (дата, регион, тип) и ускорить работу без сложных трюков.

Сегодня в посте:
• Как создать таблицу с RANGE-партициями;

• Почему фильтры по ключу в разы ускоряют SELECT;

• Как безопасно удалять старые данные за миллисекунды.


Это инструмент архитектуры, а не оптимизации, если он внедрён правильно таблица работает быстро.

➡️ SQL Ready | #гайд
  • ❤ 14
  • 👍 7
  • 🔥 7
  • 🤝 5
Post #1315 1.95K
  • 🔥 13
  • ❤ 7
  • 👍 7
  • 👎 3
Post #1314 1.97K
  • 👍 10
  • 🔥 6
  • 🤝 6
  • 👎 1
Post #1313 2.2K
RANK vs DENSE_RANK: точное ранжирование в SQL!

При создании рейтингов или аналитических сводок часто нужно определить позиции записей по показателю — с учётом повторов. Для этого используются оконные функции RANK() и DENSE_RANK().

Создадим таблицу с продажами:
CREATE TABLE sales (
employee TEXT,
total_sales INT
);

INSERT INTO sales VALUES
('Alice', 500),
('Bob', 700),
('Charlie', 700),
('Diana', 400);


Выполним ранжирование по сумме продаж:
SELECT employee,
total_sales,
RANK() OVER (ORDER BY total_sales DESC) AS rank_pos,
DENSE_RANK() OVER (ORDER BY total_sales DESC) AS dense_rank_pos
FROM sales;


Результат:
employee | total_sales | rank_pos | dense_rank_pos
---------+--------------+----------+----------------
Bob | 700 | 1 | 1
Charlie | 700 | 1 | 1
Alice | 500 | 3 | 2
Diana | 400 | 4 | 3


🔥 Так что, RANK() пропускает позиции после повторов, а DENSE_RANK() идёт подряд, без «дыр» в нумерации.

➡️ SQL Ready | #практика
  • 👍 12
  • 🔥 10
  • ❤ 8
  • 🤝 1
Post #1311 2.32K
💅 InterDB — сайт про внутреннее устройство PostgreSQL!

Если работаешь с базами и хочешь понимать, как Postgres устроен изнутри, этот сайт точно стоит внимания. Здесь подробно объясняется, как хранятся данные, работают индексы, транзакции и репликация. Всё показано на схемах и описано простым языком.

📌 Оставляю ссылочку: interdb.jp

➡️ SQL Ready | #ресурс
  • 👍 13
  • 🔥 7
  • 🤝 6
Post #1305 2.06K
🖥 Симуляция угадывания числа и проверка случайности!

Сегодня создаём небольшой симулятор: база данных загадывает число от 1 до 10, а игрок пытается его угадать тысячу раз.

В этом посте:
• Генерируем данные через GENERATE_SERIES() и RANDOM();

• Проверяем, сколько попыток оказались успешными;

• Анализируем распределение “удачных” чисел по всем догадкам.


Игра помогает тестировать генераторы случайных значений, проверять равномерность распределений и моделировать тесты.

➡️ SQL Ready | #задача
  • 🔥 14
  • 👍 6
  • ❤ 4
  • 🤝 4
Post #1304 1.71K
🔥Прими участие в Хакатоне от ИТ-холдинга Т1 в Москве и поборись за призовой фонд 1 200 000 рублей!

Когда: 25–28 ноября
Формат: онлайн + финал на площадке

Участвуй, если ты:
🔹обучаешься на технической или ИТ-специальности
🔹развиваешься в направлении разработки, системной администрации, AI/ML или DevOps
🔹сможешь быть в Москве 28 ноября.

Выбери свой кейс:

✴️VibeCode Jam: собеседование будущего. Создай ИИ-платформу для прохождения технических собеседований с виртуальным интервьюером.

✴️Self-Deploy: CI/CD без DevOps. Автоматизируй генерацию CI/CD пайплайнов по анализу структуры Git-репозитория.


Почему стоит участвовать:
🔘Кейс в портфолио и полезная обратная связь от менторов Т1
🔘Шанс проявить себя, чтобы начать карьеру в одной из крупнейших ИТ-компаний
🔘Реальный опыт командной работы
🔘Мерч и атмосфера сильного комьюнити — в Т1 более 5 000 джунов из 580+ вузов России и Беларуси.

Регистрация открыта!
➡️ Успей до 23 ноября по ссылке.


Реклама. ООО "ГК "Иннотех" ИНН 9703073496 ERID 2VtzqxXvjVG
  • ❤ 2
  • 👍 1
  • 🔥 1
Post #1303 1.85K
Covering Index — как реально ускорить SELECT!

Даже с индексом СУБД может работать медленно — после поиска всё равно нужно обращаться к таблице за данными.

Covering Index — это индекс, который уже содержит все данные, нужные запросу.

Если запрос обращается только к колонкам, включённым в индекс — таблица может не читаться вовсе:
CREATE INDEX idx_orders_status_user
ON orders (status, user_id);


Теперь запрос:
SELECT user_id, status
FROM orders
WHERE status = 'pending';


Выполняется полностью из индекса — минимум I/O, максимум скорости.

В PostgreSQL это видно как Index Only Scan в плане:
EXPLAIN ANALYZE SELECT ...


Работает только если строки помечены all-visible (visibility map). В MySQL аналог — Using index, в SQL Server — INCLUDE в индексе.

🔥 Не забывайте: больше индексов = больше места и медленнее вставки/обновления.

➡️ SQL Ready | #совет
  • ❤ 10
  • 👍 9
  • 🤝 7
  • 🔥 3
Post #1298 2.21K
🖥 Работа с геоданными в PostgreSQL (PostGIS)

В этой шпаргалке — функции PostGIS для пространственного анализа: вычисление расстояний и площадей, определение пересечений и вложенности геометрий, создание буферов и экспорт в GeoJSON. Эти инструменты полноценной ГИС-платформой для хранения, обработки и анализа геоданных.

➡️ SQL Ready | #шпора
  • 👍 12
  • 🔥 8
  • ❤ 6
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 →