SQL или NoSQL — редко бывают главной проблемой.
Гораздо чаще настоящая причина низкой производительности — это:
• плохо спроектированная схема базы данных;
• отсутствие необходимых индексов;
• неудачная модель хранения и организации данных.
Именно эти факторы обычно оказывают гораздо большее влияние на производительность и масштабируемость системы, чем выбор между SQL и NoSQL.
👉 @SQLPortal
Гораздо чаще настоящая причина низкой производительности — это:
• плохо спроектированная схема базы данных;
• отсутствие необходимых индексов;
• неудачная модель хранения и организации данных.
Именно эти факторы обычно оказывают гораздо большее влияние на производительность и масштабируемость системы, чем выбор между SQL и NoSQL.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2👍2
Нашли подробный разбор самых распространённых ошибок при эксплуатации PostgreSQL
Автор на основе реальных аудитов СУБД собрал 10 проблем, которые чаще всего встречаются в production-системах, и объяснил, как их обнаружить и исправить.
Что разбирается в статье:
• Резервное копирование PostgreSQL: почему наличие бэкапов ещё не гарантирует возможность восстановления данных.
• Типичные ошибки безопасности: использование суперпользователя приложением, слишком широкие правила доступа в
• Настройка логирования, контрольных сумм, мониторинга, поиск долгих транзакций, борьба с bloat и правильная работа
• Оптимизация конфигурации PostgreSQL под реальную нагрузку, архитектурные ошибки, а также проверка соответствия требованиям RTO/RPO и отказоустойчивости.
Материал будет полезен DBA, DevOps, системным администраторам и всем, кто отвечает за эксплуатацию PostgreSQL в production. В статье не только разбираются причины возникновения проблем, но и приводятся практические рекомендации, SQL-запросы и примеры их решения.
https://habr.com/ru/companies/k2tech/articles/1064474/
👉 @SQLPortal
Автор на основе реальных аудитов СУБД собрал 10 проблем, которые чаще всего встречаются в production-системах, и объяснил, как их обнаружить и исправить.
Что разбирается в статье:
• Резервное копирование PostgreSQL: почему наличие бэкапов ещё не гарантирует возможность восстановления данных.
• Типичные ошибки безопасности: использование суперпользователя приложением, слишком широкие правила доступа в
pg_hba.conf и отсутствие TLS.• Настройка логирования, контрольных сумм, мониторинга, поиск долгих транзакций, борьба с bloat и правильная работа
autovacuum.• Оптимизация конфигурации PostgreSQL под реальную нагрузку, архитектурные ошибки, а также проверка соответствия требованиям RTO/RPO и отказоустойчивости.
Материал будет полезен DBA, DevOps, системным администраторам и всем, кто отвечает за эксплуатацию PostgreSQL в production. В статье не только разбираются причины возникновения проблем, но и приводятся практические рекомендации, SQL-запросы и примеры их решения.
https://habr.com/ru/companies/k2tech/articles/1064474/
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
This media is not supported in your browser
VIEW IN TELEGRAM
Редко встретишь терминальный инструмент для работы с базами данных, который действительно удобен в использовании
sqlit — это быстрый TUI-клиент с поддержкой большого количества СУБД, автоматическим обнаружением Docker-контейнеров, историей запросов и умным автодополнением команд. И всё это — без тяжёлых и требовательных к памяти приложений.
Если вы часто работаете с SQL из терминала, sqlit определённо стоит попробовать.
https://github.com/Maxteabag/sqlit
👉 @SQLPortal
sqlit — это быстрый TUI-клиент с поддержкой большого количества СУБД, автоматическим обнаружением Docker-контейнеров, историей запросов и умным автодополнением команд. И всё это — без тяжёлых и требовательных к памяти приложений.
Если вы часто работаете с SQL из терминала, sqlit определённо стоит попробовать.
https://github.com/Maxteabag/sqlit
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥4
Нашли интересный способ упростить работу с
Автор предлагает автоматически генерировать функции на основе foreign key, чтобы выполнять соединения без ручного написания
Что разбирается в статье:
• Почему классический синтаксис
• История попыток добавить в SQL соединения по внешним ключам (
• Проект pg_relation_sql, который автоматически создаёт функции навигации по внешним ключам и позволяет писать запросы в стиле
• Сравнение производительности с обычными
Материал будет особенно интересен разработчикам и DBA, которые хотят глубже разобраться в возможностях PostgreSQL и взглянуть на альтернативный подход к работе со связями между таблицами.
https://habr.com/ru/articles/1065684/
👉 @SQLPortal
JOIN в PostgreSQLАвтор предлагает автоматически генерировать функции на основе foreign key, чтобы выполнять соединения без ручного написания
JOIN ... ON. Такой подход делает SQL-запросы короче, снижает вероятность ошибок и приближает работу с базой данных к навигации по связям, как в ORM.Что разбирается в статье:
• Почему классический синтаксис
JOIN заставляет каждый раз повторять уже известные базе связи и какие проблемы это создаёт.• История попыток добавить в SQL соединения по внешним ключам (
KEY JOIN) и почему эта идея до сих пор не стала частью стандарта.• Проект pg_relation_sql, который автоматически создаёт функции навигации по внешним ключам и позволяет писать запросы в стиле
client(document) вместо длинных JOIN ... ON.• Сравнение производительности с обычными
JOIN, ограничения подхода и примеры использования в реальных запросах.Материал будет особенно интересен разработчикам и DBA, которые хотят глубже разобраться в возможностях PostgreSQL и взглянуть на альтернативный подход к работе со связями между таблицами.
https://habr.com/ru/articles/1065684/
Please open Telegram to view this post
VIEW IN TELEGRAM
❤4
Совет по PostgreSQL:
Вместо нескольких
Результат:
👉 @SQLPortal
FILTER для нескольких агрегатов за один проходВместо нескольких
CASE WHEN внутри агрегатных функций используйте FILTER:SELECT
COUNT(*) AS total_orders,
COUNT(*) FILTER (WHERE status = 'completed') AS completed,
COUNT(*) FILTER (WHERE status = 'cancelled') AS cancelled
FROM orders;
Результат:
total_orders | completed | cancelled
--------------+-----------+-----------
1523 | 1402 | 121
FILTER позволяет применять собственное условие к каждой агрегатной функции. Так запрос становится компактнее, легче читается и избавляет от множества CASE WHEN.Please open Telegram to view this post
VIEW IN TELEGRAM
👍3🔥3
SQL — это не сложно
Для старта достаточно освоить всего 5 основных запросов. Вот в каком порядке я рекомендую изучать SQL новичкам:
•
•
•
•
•
Освоив эти пять конструкций, вы сможете решать большинство повседневных задач при работе с базами данных.
👉 @SQLPortal
Для старта достаточно освоить всего 5 основных запросов. Вот в каком порядке я рекомендую изучать SQL новичкам:
•
SELECT + FROM + WHERE — выборка и фильтрация данных.•
ORDER BY + LIMIT — сортировка результатов и ограничение количества строк.•
GROUP BY + COUNT() / SUM() — группировка данных и вычисление агрегатов.•
JOIN — объединение данных из нескольких таблиц (именно этот этап вызывает больше всего вопросов).•
CASE WHEN — добавление условной логики прямо в SQL-запросы.Освоив эти пять конструкций, вы сможете решать большинство повседневных задач при работе с базами данных.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤5
Бесплатные IT книг
На GoalKicker собраны десятки PDF-книг по SQL, PostgreSQL, MySQL, SQL Server, Oracle, SQLite и другим СУБД.
Все книги доступны бесплатно, содержат множество примеров кода и основаны на лучших материалах сообщества Stack Overflow.
👉 @SQLPortal
На GoalKicker собраны десятки PDF-книг по SQL, PostgreSQL, MySQL, SQL Server, Oracle, SQLite и другим СУБД.
Все книги доступны бесплатно, содержат множество примеров кода и основаны на лучших материалах сообщества Stack Overflow.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3
История SQLite началась в 2000 году, когда разработчик Д. Ричард Хипп создавал ПО для эсминца ВМС США.
Военным нужна была база данных, способная работать где угодно:
• без сервера
• без интернета
• без администратора
• без настройки
Так появился SQLite.
В отличие от MySQL, PostgreSQL и Oracle, SQLite не запускает отдельный серверный процесс. Вся база данных хранится в одном файле, а приложение работает с ним напрямую.
Никакой установки, конфигурации или сетевых подключений.
Сегодня SQLite используется в миллиардах устройств и приложений:
→ iPhone
→ Android
→ Google Chrome
→ продукты Adobe
→ встраиваемые и авиационные системы
С высокой вероятностью вы уже использовали SQLite сегодня:
- Instagram
- Spotify
- WhatsApp
Самое удивительное — проект по-прежнему поддерживает его создатель, Ричард Хипп.
Без венчурных инвестиций, IPO и продажи компании.
SQLite остаётся одним из самых распространённых программных продуктов в мире, хотя большинство пользователей даже не знают его названия.
👉 @SQLPortal
Военным нужна была база данных, способная работать где угодно:
• без сервера
• без интернета
• без администратора
• без настройки
Так появился SQLite.
В отличие от MySQL, PostgreSQL и Oracle, SQLite не запускает отдельный серверный процесс. Вся база данных хранится в одном файле, а приложение работает с ним напрямую.
Никакой установки, конфигурации или сетевых подключений.
Сегодня SQLite используется в миллиардах устройств и приложений:
→ iPhone
→ Android
→ Google Chrome
→ продукты Adobe
→ встраиваемые и авиационные системы
С высокой вероятностью вы уже использовали SQLite сегодня:
- Spotify
Самое удивительное — проект по-прежнему поддерживает его создатель, Ричард Хипп.
Без венчурных инвестиций, IPO и продажи компании.
SQLite остаётся одним из самых распространённых программных продуктов в мире, хотя большинство пользователей даже не знают его названия.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥7❤2
Шпаргалка по SQL JOIN
Если постоянно путаетесь в
LEFT JOIN: Возвращает все строки из левой таблицы (T1) и совпадающие строки из правой (T2). Если совпадений нет — значения из T2 будут
INNER JOIN: Возвращает только совпадающие записи, присутствующие в обеих таблицах.
RIGHT JOIN: Возвращает все строки из правой таблицы (T2) и совпадающие строки из левой (T1). Если совпадений нет — значения из T1 будут
LEFT JOIN (EXCLUDE T2): Возвращает записи, которые есть только в левой таблице.
UNION ALL (EXCLUDE INNER): Возвращает записи, которые присутствуют только в одной из таблиц, исключая пересечение.
RIGHT JOIN (EXCLUDE T1): Возвращает записи, которые есть только в правой таблице.
FULL OUTER JOIN: Возвращает все записи из обеих таблиц: совпадающие и несовпадающие.
UNION ALL: Альтернатива
👉 @SQLPortal
Если постоянно путаетесь в
JOIN, сохраните эту схему — на ней собраны самые популярные варианты объединения таблиц.LEFT JOIN: Возвращает все строки из левой таблицы (T1) и совпадающие строки из правой (T2). Если совпадений нет — значения из T2 будут
NULL.SELECT *
FROM T1
LEFT JOIN T2
ON T1.NAME = T2.NAME;
INNER JOIN: Возвращает только совпадающие записи, присутствующие в обеих таблицах.
SELECT *
FROM T1
INNER JOIN T2
ON T1.NAME = T2.NAME;
RIGHT JOIN: Возвращает все строки из правой таблицы (T2) и совпадающие строки из левой (T1). Если совпадений нет — значения из T1 будут
NULL.SELECT *
FROM T1
RIGHT JOIN T2
ON T1.NAME = T2.NAME;
LEFT JOIN (EXCLUDE T2): Возвращает записи, которые есть только в левой таблице.
SELECT *
FROM T1
LEFT JOIN T2
ON T1.NAME = T2.NAME
WHERE T2.ID IS NULL;
UNION ALL (EXCLUDE INNER): Возвращает записи, которые присутствуют только в одной из таблиц, исключая пересечение.
SELECT *
FROM T1
LEFT JOIN T2
ON T1.NAME = T2.NAME
WHERE T2.ID IS NULL
UNION ALL
SELECT *
FROM T1
RIGHT JOIN T2
ON T1.NAME = T2.NAME
WHERE T1.ID IS NULL;
RIGHT JOIN (EXCLUDE T1): Возвращает записи, которые есть только в правой таблице.
SELECT *
FROM T1
RIGHT JOIN T2
ON T1.NAME = T2.NAME
WHERE T1.ID IS NULL;
FULL OUTER JOIN: Возвращает все записи из обеих таблиц: совпадающие и несовпадающие.
SELECT *
FROM T1
FULL OUTER JOIN T2
ON T1.NAME = T2.NAME;
UNION ALL: Альтернатива
FULL OUTER JOIN для СУБД, где он не поддерживается (например, MySQL).SELECT *
FROM T1
LEFT JOIN T2
ON T1.NAME = T2.NAME
UNION ALL
SELECT *
FROM T1
RIGHT JOIN T2
ON T1.NAME = T2.NAME
WHERE T1.ID IS NULL;
Please open Telegram to view this post
VIEW IN TELEGRAM
❤8
Бесплатные курсы по ИИ Data Science и облачным технологиям
Платформа от IBM предлагает более 100 бесплатных курсов и проектов по искусственному интеллекту, анализу данных, облачным вычислениям и другим современным технологиям👦
👉 @SQLPortal
Платформа от IBM предлагает более 100 бесплатных курсов и проектов по искусственному интеллекту, анализу данных, облачным вычислениям и другим современным технологиям
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2
Нашли мощную open-source платформу для работы с SQL через ИИ — WrenAI
WrenAI это Generative BI-платформа, которая позволяет задавать вопросы к данным обычным языком. Сервис автоматически генерирует SQL-запросы, строит визуализации и учитывает бизнес-контекст, а не просто угадывает структуру таблиц.
Что умеет:
• Поддерживает более 20 источников данных, включая PostgreSQL, MySQL, ClickHouse, Snowflake, BigQuery и другие.
• Генерирует SQL-запросы по описанию на естественном языке и помогает анализировать данные без ручного написания сложных запросов.
• Использует семантический слой (Semantic Layer), благодаря которому ИИ понимает связи между таблицами и бизнес-логику, значительно снижая вероятность ошибок при генерации SQL.
• Автоматически строит графики, дашборды и отчёты по результатам запросов.
• Поддерживает интеграцию с Claude Code, Cursor и другими AI-агентами.
• Полностью open-source (Apache 2.0) и может быть развёрнут в собственной инфраструктуре.
Если следите за развитием AI + SQL, Text-to-SQL и Generative BI, этот проект определённо стоит добавить в закладки.
https://github.com/Canner/WrenAI
👉 @SQLPortal
WrenAI это Generative BI-платформа, которая позволяет задавать вопросы к данным обычным языком. Сервис автоматически генерирует SQL-запросы, строит визуализации и учитывает бизнес-контекст, а не просто угадывает структуру таблиц.
Что умеет:
• Поддерживает более 20 источников данных, включая PostgreSQL, MySQL, ClickHouse, Snowflake, BigQuery и другие.
• Генерирует SQL-запросы по описанию на естественном языке и помогает анализировать данные без ручного написания сложных запросов.
• Использует семантический слой (Semantic Layer), благодаря которому ИИ понимает связи между таблицами и бизнес-логику, значительно снижая вероятность ошибок при генерации SQL.
• Автоматически строит графики, дашборды и отчёты по результатам запросов.
• Поддерживает интеграцию с Claude Code, Cursor и другими AI-агентами.
• Полностью open-source (Apache 2.0) и может быть развёрнут в собственной инфраструктуре.
Если следите за развитием AI + SQL, Text-to-SQL и Generative BI, этот проект определённо стоит добавить в закладки.
https://github.com/Canner/WrenAI
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4❤2
Шпаргалка по проектированию веб систем System Design 101
Подробное руководство по архитектуре веб‑сервисов, которое обязательно стоит сохранить. Это перевод статьи от ByteByteGo опубликованный на Хабре
Сохраняем за лайк❤️
👉 @SQLPortal
Подробное руководство по архитектуре веб‑сервисов, которое обязательно стоит сохранить. Это перевод статьи от ByteByteGo опубликованный на Хабре
Сохраняем за лайк
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
5000+ бесплатных проектов
Python, JavaScript, Go, Rust, Java, C/C++ и другим технологиям для обучения через практику. 270+ тыс. звёзд на GitHub и регулярные обновления.
👉 @SQLPortal
Python, JavaScript, Go, Rust, Java, C/C++ и другим технологиям для обучения через практику. 270+ тыс. звёзд на GitHub и регулярные обновления.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3
Мощная подборка из 30 статей по системному дизайну
Коротко, по делу, с примерами и кодом. Сокровищница если хочешь прокачать базу или освежить знания.
Забираем в закладки:
👉 @SQLPortal
Коротко, по делу, с примерами и кодом. Сокровищница если хочешь прокачать базу или освежить знания.
Забираем в закладки:
1. Что такое API
2. Что такое вебхуки
3. REST vs GraphQL
4. Что такое API Gateway
5. Балансировщики нагрузки
6. Алгоритмы балансировки нагрузки
7. Прокси vs Обратный прокси
8. Что такое масштабируемость
9. Что такое доступность
10. Как избежать единой точки отказа (SPOF)
11. Объяснение теоремы CAP
12. 15 типов баз данных и когда их использовать
13. 7 ключевых различий между SQL и NoSQL
14. Что такое ACID-транзакции
15. Подробное руководство по индексам в базах данных
16. Шардинг vs Партиционирование
17. Объяснение последовательного хеширования
18. CDC (Change Data Capture)
19. Кэширование
20. Топ-5 стратегий кэширования
21. 7 стратегий вытеснения кэша
22. CDN
23. Алгоритмы ограничения скорости
24. Очереди сообщений
25. Фильтры Блума
26. Идемпотентность в распределённых системах
27. Конкурентность vs Параллелизм
28. Stateful vs Stateless
29. Long Polling vs WebSockets
30. Пакетная (batch) vs потоковая (stream) обработка данных
Please open Telegram to view this post
VIEW IN TELEGRAM
❤6
Грокаем алгоритмы в «alg0dev»
Нашёл сервис который превращает сложные алгоритмы в наглядное шоу: сортировки, графы и поиск оживают прямо на экране
Каждый шаг здесь визуализирован и синхронизирован с кодом его можно остановить, прокрутить и разобраться, что происходит под капотом.
👉 @SQLPortal
Нашёл сервис который превращает сложные алгоритмы в наглядное шоу: сортировки, графы и поиск оживают прямо на экране
Каждый шаг здесь визуализирован и синхронизирован с кодом его можно остановить, прокрутить и разобраться, что происходит под капотом.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤5