SQL Portal | Базы Данных
13.7K subscribers
1.12K photos
142 videos
51 files
805 links
Присоединяйтесь к нашему каналу и погрузитесь в мир баз данных

Связь: @devmangx

РКН: https://clck.ru/3H4Wo3
Download Telegram
Если вы хотите перейти в дата-инжиниринг, но не знаете, с чего начать, вот дорожная карта.

👉 @SQLPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2
Backend as a Service: что такое BaaS и когда его использовать

Аутентификация, база данных, хранение файлов и обновления в реальном времени — типовые задачи можно закрыть готовой платформой. Именно такой подход предлагают BaaS-сервисы.

В статье freeCodeCamp разобрали основные возможности BaaS, сценарии применения и платформы вроде Firebase, Supabase и Appwrite. В конце — короткий пример начала работы с Firebase. Материал вводный, подойдёт для знакомства с темой.

Читать статью

👉 @SQLPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
DELETE ≠ TRUNCATE ≠ DROP

Все три команды удаляют данные, но делают это по-разному.

DELETE
➜ Удаляет выбранные строки из таблицы.
➜ Позволяет задать условие WHERE.

TRUNCATE
➜ Удаляет все строки из таблицы.
➜ Сохраняет её структуру.

DROP
➜ Удаляет саму таблицу: данные, индексы, ограничения и определение структуры.

Как запомнить:
• DELETE — удалить строки.
• TRUNCATE — очистить таблицу.
• DROP — удалить таблицу.

Примеры:
-- Удаляет строку с id = 101
DELETE FROM users WHERE id = 101;

-- Удаляет все строки, сохраняя таблицу
TRUNCATE TABLE users;

-- Удаляет саму таблицу
DROP TABLE users;


Когда использовать каждую команду?


DELETE
• Нужно удалить конкретные записи.
• Требуется фильтрация через WHERE.
• Могут срабатывать триггеры, а удаление обычно журналируется на уровне строк.

TRUNCATE
• Нужно быстро очистить всю таблицу.
• Таблица понадобится для дальнейшей работы.
• Часто применяется для временных или промежуточных данных.

DROP
• Таблица больше не нужна.
• Требуется удалить и данные, и определение её структуры.

Ловушка на собеседовании: DELETE FROM users; без WHERE удаляет все строки, но сохраняет таблицу. Это не то же самое, что DROP TABLE users;. Сохраните шпаргалку, если изучаете SQL или готовитесь к собеседованию.

👉 @SQLPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2👍2
🗄 Что важно учесть, если ИИ-агент ищет по корпоративным данным?

6 октября в Архитектурном клубе Яндекс 360 разберут, как устроить поиск для ИИ-агента: сочетать полнотекстовый и векторный поиск, работать с метаданными и фильтрами и учитывать права доступа.

Даниил Смирнов, руководитель разработки ИИ-платформы Яндекс 360, покажет, как изолировать данные пользователей и организаций и не допускать появления чужих фрагментов из индекса или кеша. Ещё обсудят оценку качества поиска и итогового ответа агента.

🗓 6 октября, 17:00 МСК
💻 Онлайн, бесплатно

→ Зарегистрироваться на эфир
Нет, это не одно и то же.

Для проверки на NULL в SQL нельзя использовать = NULL. NULL означает неизвестное значение, поэтому сравнение с ним возвращает UNKNOWN, а не FALSE.

✔️ Используйте IS NULL.
✔️ Используйте IS NOT NULL.

👉 @SQLPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
PostgreSQL: почему резерв на 30 минут исчезал через пять

Полезный кейс о том, как различия конфигурации между окружениями превращаются в ошибки бизнес-логики.

В статье разбирают инцидент на стеке Go, GORM, pgx и PostgreSQL: разницу между timestamp и timestamptz, влияние таймзоны сессии на NOW() и сравнения дат, а также фиксацию UTC в подключении и проверку настроек при старте.

https://habr.com/ru/articles/1085828/

👉 @SQLPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
Партиционирование vs шардинг: в чём разница?

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

Партиционирование разбивает большую таблицу на разделы, например по месяцам. В показанном сценарии они остаются на одном сервере. Это упрощает обслуживание и позволяет подходящим запросам читать только нужные разделы.

Шардинг распределяет данные между несколькими серверами по ключу, например user_id или tenant_id. Это позволяет распределять нагрузку и объём хранения, но усложняет запросы между шардами и перенос данных.

Оба подхода можно сочетать: внутри каждого шарда таблицы могут быть партиционированы. Сохраняйте схему

👉 @SQLPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3
Docker прост, пока всё работает.

Но что делать, если контейнер постоянно перезапускается, логи пропали, а приложение теряет данные после перезапуска? Тут уже недостаточно одного docker run.

Команды Docker, которые стоит знать каждому разработчику:

• docker logs -f → следить за логами приложения.
• docker exec -it → выполнять команды внутри работающего контейнера для диагностики.
• docker inspect → изучать конфигурацию контейнера.
• docker stats → проверять потребление CPU и памяти.
• docker network → управлять сетями и разбираться с соединениями между сервисами.
• docker volume → управлять томами для хранения данных вне жизненного цикла контейнера.
• docker compose → запускать несколько сервисов вместе.
• docker system df → проверять, сколько места на диске занимает Docker.

В продакшене не забывайте:

• Использовать небольшие базовые образы из доверенных источников.
• Запускать приложение от пользователя без прав root.
• Настраивать проверки работоспособности и ограничения ресурсов.
• Не хранить секреты в Docker-образах.
• Использовать тома для постоянного хранения данных.

Подготовили шпаргалку по Docker для продакшена: архитектура, команды, примеры, сети, тома, Compose и советы по диагностике проблем.

👉 @SQLPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
Вопрос по SQL

Почему условие status = NULL не подходит для проверки на NULL?

Ответ: status = NULL даёт UNKNOWN, а WHERE пропускает только строки, для которых условие равно TRUE. Поэтому для проверки на NULL используют status IS NULL.

👉 @SQLPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6
План оптимизации SQL-запросов

Правильный результат ещё не означает, что запрос работает эффективно. Если SQL начинает тормозить, не переписывайте его наугад.

План выполнения (EXPLAIN) → фильтры → выбираемые столбцы → JOIN → индексы → функции → перемещение данных → повторные замеры.

Оптимизируйте на основе фактов, а не догадок. Что вы проверяете первым, когда SQL-запрос становится медленным?

👉 @SQLPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2
А что, если SQL сможет искать и по точному совпадению, и по смыслу?

В YDB от Yandex B2B Tech появился гибридный поиск, который объединяет полнотекстовый и векторный поиск.

Полнотекстовый индекс ищет конкретные слова и значения, а векторный — похожие по смыслу данные. Например, запрос может одновременно содержать номер документа и описание нужной ситуации.

Раньше для такого сценария часто приходилось использовать несколько систем: основную БД, поисковый движок и векторное хранилище. Между ними нужно синхронизировать данные и отдельно поддерживать каждый компонент.

В YDB оба индекса работают как распределённые таблицы и обновляются в рамках одной транзакции вместе с основными данными. Поэтому поиск можно строить непосредственно поверх данных в БД.

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

Гибридный поиск доступен в enterprise-редакции версии 26.3 для использования в on-premises и в Managed Service for YDB.

Хотите, чтобы ИИ-агенты отвечали точнее, а рекомендации были релевантнее? 15 октября на митапе команда YDB покажет, как совместить смысловой и точный поиск в одной СУБД.

🔥 Регистрация по ссылке
Согласны с этим? Третьего пора повышать? 🙂

👉 @SQLPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
😁4
В стране 2 000 клиентов. Сколько SQL-запросов этот метод отправит в базу данных?

Напишите число в комментариях.

👉 @SQLPortal
Please open Telegram to view this post
VIEW IN TELEGRAM