SQL помогает получить данные. Статистика — понять, что они означают
20 статистических понятий для работы с отчётами, метриками и аналитическими запросами.
👉 @SQLPortal
20 статистических понятий для работы с отчётами, метриками и аналитическими запросами.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤4🔥1
Быстрый SQL начинается с продуманных запросов
1. Выбирайте только нужные столбцы. Вместо
2. Создавайте подходящие индексы. Учитывайте столбцы, используемые в
3. Избегайте функций над индексируемыми столбцами в условиях. Вместо
4. Используйте
5. Ограничивайте выдачу через
6. Сравнивайте
7. Отсекайте ненужные строки через
8. Не используйте
9. Выбирайте
10. Анализируйте планы выполнения. Используйте
👉 @SQLPortal
1. Выбирайте только нужные столбцы. Вместо
SELECT * перечисляйте поля: это уменьшает объём передаваемых данных.2. Создавайте подходящие индексы. Учитывайте столбцы, используемые в
WHERE, JOIN и ORDER BY.3. Избегайте функций над индексируемыми столбцами в условиях. Вместо
YEAR(date) = 2024 используйте диапазон дат — он может позволить использовать обычный индекс.4. Используйте
EXISTS для проверки существования строк. Но не считайте его всегда быстрее IN: сравнивайте планы выполнения.5. Ограничивайте выдачу через
LIMIT или TOP. Это сокращает результат, но не обязательно объём работы базы данных.6. Сравнивайте
JOIN и подзапросы. Выбирайте вариант с нужной семантикой и лучшим планом: объединение не всегда быстрее и может размножать строки.7. Отсекайте ненужные строки через
WHERE. Чем меньше данных обрабатывается дальше, тем лучше; фактический порядок операций определяет оптимизатор.8. Не используйте
DISTINCT без необходимости. Удаление дубликатов требует ресурсов. Проверьте, не возникают ли они из-за ошибочного объединения.9. Выбирайте
UNION ALL, если удалять дубликаты не нужно. В отличие от UNION, он сохраняет все строки и не тратит ресурсы на устранение повторов.10. Анализируйте планы выполнения. Используйте
EXPLAIN и, где доступно, EXPLAIN ANALYZE, чтобы находить узкие места. Помните: EXPLAIN ANALYZE действительно выполняет запрос.Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
Числовые функции SQL: от округления до итогов 🔢
Они помогают обрабатывать числа и выполнять вычисления:
•
•
•
•
•
Агрегатные функции обобщают данные:
👉 @SQLPortal
Они помогают обрабатывать числа и выполнять вычисления:
•
ROUND — округлить до нужного количества знаков.•
CEIL / CEILING и FLOOR — округлить вверх или вниз до целого.•
ABS — получить модуль числа.•
MOD или % — найти остаток от деления.•
POWER — возвести число в степень.Агрегатные функции обобщают данные:
AVG вычисляет среднее, SUM — сумму, MIN и MAX — минимальное и максимальное значения. Названия и синтаксис отдельных функций зависят от СУБД.Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
Дубликаты в SQL: способ зависит от задачи
•
•
•
Убрать повторы из выдачи и удалить записи из таблицы — разные задачи. Перед
👉 @SQLPortal
•
DISTINCT убирает повторяющиеся сочетания выбранных столбцов из результата запроса.•
GROUP BY объединяет строки в группы и позволяет посчитать повторы через COUNT(*).•
ROW_NUMBER() нумерует строки внутри группы, чтобы выбрать, какую запись оставить.Убрать повторы из выдачи и удалить записи из таблицы — разные задачи. Перед
DELETE проверьте выборку удаляемых строк и сделайте резервную копию.Please open Telegram to view this post
VIEW IN TELEGRAM
❤3
Git пригодится и тем, кто пишет SQL
Храните запросы, миграции и схемы БД в репозитории: так проще отслеживать изменения, возвращаться к предыдущим версиям и обсуждать правки с командой.
В шпаргалке — базовые команды: создание репозитория, коммиты, ветки, слияние,
👉 @SQLPortal
Храните запросы, миграции и схемы БД в репозитории: так проще отслеживать изменения, возвращаться к предыдущим версиям и обсуждать правки с командой.
В шпаргалке — базовые команды: создание репозитория, коммиты, ветки, слияние,
stash и работа с удалённым репозиторием. Сохраните для работы над SQL-проектами.Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3❤2
SQL проще изучать, если разделить его по задачам
• Определять структуру таблиц:
• Получать данные:
• Добавлять, изменять и удалять записи:
• Управлять доступом:
• Управлять транзакциями:
• Объединять таблицы:
Считать итоги:
Начните с конкретной задачи — так проще понять, какие конструкции нужны и как они работают вместе.
👉 @SQLPortal
• Определять структуру таблиц:
CREATE, ALTER, DROP.• Получать данные:
SELECT, WHERE, ORDER BY.• Добавлять, изменять и удалять записи:
INSERT, UPDATE, DELETE.• Управлять доступом:
GRANT, REVOKE.• Управлять транзакциями:
BEGIN, COMMIT, ROLLBACK.• Объединять таблицы:
JOIN.Считать итоги:
GROUP BY, COUNT, SUM, AVG, MIN, MAX.Начните с конкретной задачи — так проще понять, какие конструкции нужны и как они работают вместе.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2
Практические уроки для Backend, Data Engineering и DevOps
Площадка с пошаговыми туториалами и облачными окружениями. Изучаем теорию и сразу выполняем команды без настройки локальной среды. В каталоге PostgreSQL, Redis, Docker, Kubernetes, Airflow, Spark и ClickHouse.
https://prepare.sh/
👉 @SQLPortal
Площадка с пошаговыми туториалами и облачными окружениями. Изучаем теорию и сразу выполняем команды без настройки локальной среды. В каталоге PostgreSQL, Redis, Docker, Kubernetes, Airflow, Spark и ClickHouse.
https://prepare.sh/
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2
Дождались! Ребята сделали крутейший канал про IT новой эпохи
Нейросети, ИИ-агенты, вайбкодинг, вайбхакинг и новые инструменты уже меняют привычный мир технологий.
Там разбирают эти изменения и другие интересные IT-темы на простых картинках и понятном языке, а еще делятся полезными ресурсами и свежими новостями
Подписывайтесь: @IT_Portal
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Масштабирование базы данных: 6 подходов, которые стоит знать
Рост данных и трафика требует разных решений. Прежде чем масштабировать базу, определите, что ограничивает производительность: CPU, память, диски, запросы или количество соединений.
• Вертикальное масштабирование — добавить серверу CPU, RAM и более быстрые диски.
• Реплики для чтения — распределить запросы на чтение между копиями базы, учитывая задержку репликации.
• Шардинг — распределить данные между несколькими узлами.
• Партиционирование — разделить большую таблицу на части, чтобы упростить обслуживание и ускорить подходящие запросы.
• Кэширование — сократить повторные обращения к базе.
• Пул соединений — переиспользовать подключения и ограничивать их количество.
У каждого подхода свои ограничения и цена сложности. Выбирайте по измерениям и характеру нагрузки. Сохраните шпаргалку для работы и подготовки к собеседованию по System Design.
👉 @SQLPortal
Рост данных и трафика требует разных решений. Прежде чем масштабировать базу, определите, что ограничивает производительность: CPU, память, диски, запросы или количество соединений.
• Вертикальное масштабирование — добавить серверу CPU, RAM и более быстрые диски.
• Реплики для чтения — распределить запросы на чтение между копиями базы, учитывая задержку репликации.
• Шардинг — распределить данные между несколькими узлами.
• Партиционирование — разделить большую таблицу на части, чтобы упростить обслуживание и ускорить подходящие запросы.
• Кэширование — сократить повторные обращения к базе.
• Пул соединений — переиспользовать подключения и ограничивать их количество.
У каждого подхода свои ограничения и цена сложности. Выбирайте по измерениям и характеру нагрузки. Сохраните шпаргалку для работы и подготовки к собеседованию по System Design.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1