3 вида шардирования баз данных:
• Range-based — разбивает данные по диапазонам значений ключа
• Hash-based — выбирает шарду с помощью хеш-функции
• Tenant-based — каждому клиенту (тенанту) выделяется своя отдельная база
Пояснения:
Range-based sharding делит данные по диапазонам ключа (например: ID 1–1 000 — первая шарда, 1 001–2 000 — вторая).
Hash-based sharding использует хеш от ключа, чтобы определить, в какую шарду поместить или откуда прочитать запись. Это даёт более равномерное распределение.
Tenant-based sharding выделяет каждому клиенту собственную базу данных, что упрощает изоляцию, миграции и управление данными.
Просто, понятно и работает во всех масштабах.
• Range-based — разбивает данные по диапазонам значений ключа
• Hash-based — выбирает шарду с помощью хеш-функции
• Tenant-based — каждому клиенту (тенанту) выделяется своя отдельная база
Пояснения:
Range-based sharding делит данные по диапазонам ключа (например: ID 1–1 000 — первая шарда, 1 001–2 000 — вторая).
Hash-based sharding использует хеш от ключа, чтобы определить, в какую шарду поместить или откуда прочитать запись. Это даёт более равномерное распределение.
Tenant-based sharding выделяет каждому клиенту собственную базу данных, что упрощает изоляцию, миграции и управление данными.
Просто, понятно и работает во всех масштабах.
❤15🔥7👍4
This media is not supported in your browser
VIEW IN TELEGRAM
🔥 SQL разбор ошибок
Одна из самых частых ошибок в SQL - вытаскивать слишком много строк без явных условий фильтрации. Люди часто пишут запросы без WHERE, забывают ограничивать выборку и получают огромные таблицы, перегруженные джоины и медленные отчёты.
Особенно опасно - JOIN без условий: это создаёт декартово произведение и может положить базу.
Всегда задавай точные условия, проверяй ключи соединений и ограничивай выборку, если смотришь данные руками.
Подписывайся, больше фишек каждый день !
Одна из самых частых ошибок в SQL - вытаскивать слишком много строк без явных условий фильтрации. Люди часто пишут запросы без WHERE, забывают ограничивать выборку и получают огромные таблицы, перегруженные джоины и медленные отчёты.
Особенно опасно - JOIN без условий: это создаёт декартово произведение и может положить базу.
Всегда задавай точные условия, проверяй ключи соединений и ограничивай выборку, если смотришь данные руками.
Подписывайся, больше фишек каждый день !
SELECT *
FROM users
JOIN orders
-- Ошибка: отсутствует ON, создаётся декартово произведение
LIMIT 100;
-- Правильно:
SELECT u.id, o.id
FROM users u
JOIN orders o ON o.user_id = u.id
LIMIT 100;
👍12❤3🔥3😁3
В свежем релизе появилось сразу несколько функций, которые упрощают аналитику, делают работу с API удобнее и улучшают интеграцию SQL с JavaScript.
🔹 Главное обновление
- Появилась SQL клауза QUALIFY. Теперь можно фильтровать результаты оконных функций напрямую, без вложенных подзапросов. Упрощает сложные аналитические выборки.
- Добавлена функция GRAPHQL(). Можно выполнять запросы к базе в синтаксисе GraphQL и получать JSON ответ. Полезно для API сервисов и современных приложений.
- В MLE JavaScript теперь поддерживаются SQL объекты и коллекции. Это позволяет возвращать и принимать пользовательские типы прямо из JS функций.
- Для PL SQL пакетов появилось ключевое слово RESETTABLE. Обновление пакета больше не вызывает ORA 04068, что делает деплой безопаснее.
📈 Зачем это нужно
Обновление делает Oracle удобнее для разработчиков, особенно если вы строите API, используете аналитику, комбинируете SQL и JavaScript или разрабатываете приложения с AI и ML нагрузкой.
https://www.geraldonit.com/whats-new-for-developers-in-oracle-ai-database-23-26-0/
@sqlhub
Please open Telegram to view this post
VIEW IN TELEGRAM
❤8👍5🔥5
✓ Введение
Правильный выбор NoSQL базы критически важен для построения масштабируемых и гибких backend-систем.
NoSQL решает задачи, где классические SQL-базы ограничивают: работа с неструктурированными данными, огромные объёмы информации и экстремальные нагрузки.
✓ 1. Когда выбирать NoSQL
- Когда данные неструктурированные или полуструктурированные
- Когда нужна горизонтальная масштабируемость
- Когда важна высокая скорость чтения и записи
- Когда строгие схемы SQL тормозят разработку
✓ 2. Типы NoSQL баз данных и где их применять
• Документные базы (MongoDB, CouchDB)
- Идеальны для JSON-подобных документов
- Гибкие схемы
- Подходят для CMS, профилей пользователей, каталогов товаров
• Key-Value хранилища (Redis, DynamoDB)
- Максимальная скорость операций
- Отличны для кэша, хранения сессий, лидербордов
- Для простых структур данных и быстрых lookup-запросов
• Колонковые базы (Cassandra, HBase)
- Оптимизированы под огромные объёмы записей
- Используются в аналитике, IoT, потоках событий
- Масштабируются горизонтально практически бесконечно
• Графовые базы (Neo4j, JanusGraph)
- Созданы для данных со сложными взаимосвязями
- Подходят для соцсетей, рекомендаций, antifraud-систем
✓ 3. Как выбрать NoSQL базу
- Тип данных: документы, ключ-значение, графы, wide-columns
- Требования к масштабированию
- Паттерны запросов: lookup, обход графов, агрегации
- Баланс между консистентностью и доступностью (CAP)
- Готовые интеграции, драйверы, инструменты
- Нагрузка на чтение и запись
- Сложность настройки и поддержки
✓ 4. Сильные стороны NoSQL
- Масштабирование “вширь”
- Гибкость схем
- Высокая доступность
- Поддержка огромных массивов данных
✓ 5. Ограничения NoSQL
- Иногда более слабая консистентность
- Ограниченные возможности сложных запросов
- Нет строгих отношений как в SQL
- Порог вхождения для SQL-разработчиков
→ Хочешь глубже разобраться?
В *Backend Development with Projects Ebook* разберёшь, как выбирать, проектировать и интегрировать NoSQL в реальных проектах.
@sqlhub
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7❤4😁4👎1🔥1
Мероприятие: PG BootCamp Russia — официальное российское комьюнити-мероприятие PostgreSQL
Когда: весна 2026 г. (дата уточняется)
Где: г. Москва
Больше о мероприятиях PG BootCamp
В отличие от коммерческих конференций, предметом докладов выступает «ванильная» версия этой СУБД. Темы выступлений, связанные с коммерческими продуктами, не принимаются. Доклады (их обычно до 16 в два трека) делятся по темам разработки и эксплуатации. Формат предполагает камерную атмосферу, максимальную практическую пользу и содержательное профессиональное общение.
Открыт прием заявок на выступления:
🔹Исследование внутренней архитектуры PostgreSQL
🔹 Оптимизация производительности в высоконагруженных системах
🔹Анализ сложных задач и методов их решения
🔹 Инструменты и методологии для DBA
🔹 R&D-исследования, связанные с Postgres
Если у вас есть материалы, которым вы хотите поделиться с сообществом, — пожалуйста, присылайте тезисы. Это возможность не только представить свою работу, но и получить содержательную обратную связь от ведущих специалистов.
🎙Подать заявку на выступление
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4❤1🥰1
📌 Durable Execution Engine на SQLite:
• Durable Execution (DE) - это подход, который позволяет выполнять длинные многошаговые процессы так, чтобы после сбоя можно было продолжить с последнего успешного шага, а не запускать всё заново.
• В статье показан простой Proof of Concept - Persistasaurus: лёгкий DE-движок на Java, который использует SQLite как хранилище состояния.
• Потоки (flows) пишутся как обычный Java-код: методы помечаются аннотациями
• Идея не новая, но современная Java + SQLite позволяют сделать удивительно компактное и понятное решение без тяжёлой инфраструктуры.
Почему это полезно:
• Упрощает работу с долгоживущими процессами
• Избавляет от повторных вычислений и экономит ресурсы
• Подходит для прототипов, внутренних сервисов и задач средней сложности
Что учитывать:
• Это только прототип - для реальных больших систем нужно масштабирование, отказоустойчивость, параллелизм и дополнительные инструменты
• SQLite отлично подходит для простых сценариев, но не для высоконагруженных распределённых систем
🔗 Читаем тут: morling.dev/blog/building-durable-execution-engine-with-sqlite/
• Durable Execution (DE) - это подход, который позволяет выполнять длинные многошаговые процессы так, чтобы после сбоя можно было продолжить с последнего успешного шага, а не запускать всё заново.
• В статье показан простой Proof of Concept - Persistasaurus: лёгкий DE-движок на Java, который использует SQLite как хранилище состояния.
• Потоки (flows) пишутся как обычный Java-код: методы помечаются аннотациями
@Flow и @Step, а их прогресс автоматически сохраняется. Если процесс падает, можно безопасно перезапустить его без повторного выполнения шагов.• Идея не новая, но современная Java + SQLite позволяют сделать удивительно компактное и понятное решение без тяжёлой инфраструктуры.
Почему это полезно:
• Упрощает работу с долгоживущими процессами
• Избавляет от повторных вычислений и экономит ресурсы
• Подходит для прототипов, внутренних сервисов и задач средней сложности
Что учитывать:
• Это только прототип - для реальных больших систем нужно масштабирование, отказоустойчивость, параллелизм и дополнительные инструменты
• SQLite отлично подходит для простых сценариев, но не для высоконагруженных распределённых систем
🔗 Читаем тут: morling.dev/blog/building-durable-execution-engine-with-sqlite/
❤3👍3🔥2
🔥 На stepik вышел курс, который учит Создавать настоящие AI-сервисы, а не просто запускать скрипты?
Этот практический курс по Python и FastAPI покажет, как собрать полноценное приложение с ИИ, базой данных, автогенерацией контента и Telegram-ботом.
Ты пройдёшь путь от первого HTTP-запроса до рабочего сервиса, который сам генерирует текст через ИИ, сохраняет данные, отправляет результаты по расписанию и отвечает пользователям.
Никакой теории ради теории - только практические шаги, из которых рождается реальный продукт.
🎁 48 часов действует скидка в 40% процентов
👉 Начать учиться на Stepik
Этот практический курс по Python и FastAPI покажет, как собрать полноценное приложение с ИИ, базой данных, автогенерацией контента и Telegram-ботом.
Ты пройдёшь путь от первого HTTP-запроса до рабочего сервиса, который сам генерирует текст через ИИ, сохраняет данные, отправляет результаты по расписанию и отвечает пользователям.
Никакой теории ради теории - только практические шаги, из которых рождается реальный продукт.
🎁 48 часов действует скидка в 40% процентов
👉 Начать учиться на Stepik
❤5👍3🔥2👎1
Эта статья - не про «как написать
SELECT, а про настоящую инженерную работу: принципы нормализации, дизайн схем, практики оптимизации SQL, работа с транзакциями, и главное - как выбрать и использовать ORM так, чтобы он помогал, а не мешал.Если тебе нужен инструмент, который выдержит рост проекта и не взорвётся через год, здесь ты найдёшь системный подход, проверенные шаблоны и практические примеры, которым уже доверяют зрелые инженерные команды.
Готовы? Тогда начинаем строить архитектуру, которую не стыдно масштабировать.
https://uproger.com/sql-bolshoj-gajd-kak-pravilno-vybrat-orm/
@sqlhub
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5❤1🔥1
Только в декабре: скидка 10 % на курсы и программы в IT от НИУ ВШЭ
Центр непрерывного образования факультета компьютерных наук НИУ ВШЭ предлагает всем, кто готов начать новый год с погружения в IT-индустрию, скидку 10% на курсы и программы.
Профессии:
🟣 Специалист по Data Science: старт — 11 февраля, продолжительность — 1.5 года.
🟣 Аналитик данных: старт — 25 февраля, продолжительность — 1 год.
🟣 Дата-инженер: старт — март-апрель 2026 год, продолжительность — 1 год.
Очные курсы:
🟣 Алгоритмы и структуры данных: старт — 12 января, продолжительность — 10 занятий.
🟣 SQL для анализа данных: старт — 14 января, продолжительность — 10 недель.
🟣 Прикладная статистика для машинного обучения: старт — 17 января, продолжительность — 10 недель.
🟣 Машинное обучение: старт — 9 февраля, продолжительность — 14 недель.
🟣 Глубинное обучение: старт — 19 марта, продолжительность — 10 недель.
🟣 Математика для анализа данных: старт — 2 апреля, продолжительность — 21 занятие.
🟣 BI-аналитика и визуализация данных: старт — 20 мая, продолжительность — 7 недель.
Онлайн-курсы:
🟣 Промпт-инжиниринг: нейросети для человека: старт — 30 января, продолжительность — 6 недель.
🟣 Python для автоматизации и анализа данных: старт — 3 февраля, продолжительность — 9 недель.
🟣 SQL для начинающих: старт — 16 февраля, продолжительность — 2 месяца.
🟣 Аналитика в Business Intelligence: старт — 17 февраля, продолжительность — 1 месяц.
🟣 LLM: создание и интеграция интеллектуальных ассистентов: старт — 23 марта, продолжительность — 13 недель.
🟣 GameDev: разработчик игр: старт — 30 марта, продолжительность — 5 месяцев.
🟣 Искусственный интеллект в образовании: старт — 6 апреля, продолжительность — 1 месяц.
🟣 Искусственный интеллект для руководителей: старт — 20 апреля.
🟣 Frontend-разработчик: старт — апрель 2026 года, продолжительность — 4 месяца.
Скидка действует при подаче заявки до 31 декабря.
⚡️ Узнать подробнее о каждой программе
НИУ "ВШЭ". ИНН 7714030726. erid:2SDnje4QSab
Центр непрерывного образования факультета компьютерных наук НИУ ВШЭ предлагает всем, кто готов начать новый год с погружения в IT-индустрию, скидку 10% на курсы и программы.
Профессии:
Очные курсы:
Онлайн-курсы:
Скидка действует при подаче заявки до 31 декабря.
НИУ "ВШЭ". ИНН 7714030726. erid:2SDnje4QSab
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3👍2😁1
🕒 Расширенный планировщик задач для PostgreSQL
pg_timetable - это мощный планировщик задач для PostgreSQL, который предлагает гибкие возможности для автоматизации выполнения SQL-команд и системных программ. Он полностью управляется из базы данных и поддерживает сложные сценарии планирования, включая цепочки задач и автоматическое повторение пропущенных заданий.
🚀 Основные моменты:
- Полностью управляемая конфигурация через базу данных
- Поддержка YAML для удобного определения цепочек задач
- Возможность передачи параметров и автоматического повторения задач
- Встроенные задачи, такие как отправка email и импорт файлов
- Расширенные возможности планирования по типу cron
📌 GitHub: https://github.com/cybertec-postgresql/pg_timetable
@sqlhub
pg_timetable - это мощный планировщик задач для PostgreSQL, который предлагает гибкие возможности для автоматизации выполнения SQL-команд и системных программ. Он полностью управляется из базы данных и поддерживает сложные сценарии планирования, включая цепочки задач и автоматическое повторение пропущенных заданий.
🚀 Основные моменты:
- Полностью управляемая конфигурация через базу данных
- Поддержка YAML для удобного определения цепочек задач
- Возможность передачи параметров и автоматического повторения задач
- Встроенные задачи, такие как отправка email и импорт файлов
- Расширенные возможности планирования по типу cron
📌 GitHub: https://github.com/cybertec-postgresql/pg_timetable
@sqlhub
👍7❤2🔥2
Что произойдет при попытке выполнить UPDATE на таблице с триггером BEFORE UPDATE, который изменяет значение обновляемого столбца?
Anonymous Quiz
7%
A) Изменения триггера игнорируются
28%
B) Триггер может изменить значение, и это повлияет на обновление
11%
C) Обновление отменится с ошибкой
55%
D) Значение обновится, но только после выполнения триггера
👍9❤2🔥2
🔍 Быстрый клиент PostgreSQL для разработчиков
Data Peek — это легкое и быстрое настольное приложение для работы с PostgreSQL, позволяющее разработчикам быстро просматривать данные без лишнего функционала. Поддерживает много вкладок, редактирование данных и визуализацию отношений между таблицами.
🚀Основные моменты:
- Мгновенный запуск за 2 секунды
- Редактор запросов с подсветкой синтаксиса
- Поддержка темного и светлого режимов
- Безопасное хранение учетных данных
- Анализ производительности запросов
📌 GitHub: https://github.com/Rohithgilla12/data-peek
Data Peek — это легкое и быстрое настольное приложение для работы с PostgreSQL, позволяющее разработчикам быстро просматривать данные без лишнего функционала. Поддерживает много вкладок, редактирование данных и визуализацию отношений между таблицами.
🚀Основные моменты:
- Мгновенный запуск за 2 секунды
- Редактор запросов с подсветкой синтаксиса
- Поддержка темного и светлого режимов
- Безопасное хранение учетных данных
- Анализ производительности запросов
📌 GitHub: https://github.com/Rohithgilla12/data-peek
👍5❤1
This media is not supported in your browser
VIEW IN TELEGRAM
Как MySQL обрабатывает FOREIGN KEY при удалении родительской записи с опцией ON DELETE CASCADE?
Anonymous Quiz
13%
Запрещает удаление родительской записи
74%
Удаляет все дочерние записи, связанные с родительской
2%
Оставляет дочерние записи без изменений
12%
Устанавливает дочерним записям значение NULL