Media is too big
VIEW IN TELEGRAM
IT Hero — это твой лучший друг для подготовки к техническим собесам
Тут не просто теоретические вопросы, а реальные задачи на кодинг, алгоритмы, базы данных, сети, безопасность и многое другое.
Раньше приходилось штудировать кучу ресурсов, а теперь всё в одном месте: заходишь, выбираешь тему, решаешь задачи, подтягиваешь слабые места и становишься жестким технарём.👍
⏩ Попробуй сам: здесь
👉 @SQLPortal
Тут не просто теоретические вопросы, а реальные задачи на кодинг, алгоритмы, базы данных, сети, безопасность и многое другое.
Раньше приходилось штудировать кучу ресурсов, а теперь всё в одном месте: заходишь, выбираешь тему, решаешь задачи, подтягиваешь слабые места и становишься жестким технарём.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5👀4🔥3
SQL Фишка: Генерируемые столбцы
Хватит вручную пересчитывать данные! SQL умеет хранить вычисляемые значения автоматически.
❌ Как делать НЕ НАДО:
Вы храните в таблице orders сумму заказа и обновляете её вручную? Это потенциальный источник багов!
Можно забыть обновить поле → данные сломаются.
☑ Как делать ПРАВИЛЬНО:
Используем генерируемый столбец:
Теперь total всегда автоматически содержит правильное значение.
👉 @SQLPortal
Хватит вручную пересчитывать данные! SQL умеет хранить вычисляемые значения автоматически.
Вы храните в таблице orders сумму заказа и обновляете её вручную? Это потенциальный источник багов!
UPDATE orders SET total = price * quantity WHERE id = 1;
Можно забыть обновить поле → данные сломаются.
Используем генерируемый столбец:
CREATE TABLE orders (
id INT PRIMARY KEY,
price DECIMAL(10,2),
quantity INT,
total DECIMAL(10,2) GENERATED ALWAYS AS (price * quantity) STORED
);
Теперь total всегда автоматически содержит правильное значение.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥14👍8
Media is too big
VIEW IN TELEGRAM
Проектирование баз данных
В этом видеоуроке автор подробно и наглядно разбирает процесс проектирования рассылочного сервиса со списками получателей, сегментами и отчетами, используя связи 1-ко-многим и многие-ко-многим. Вы научитесь использовать полиморфные связи и создавать json-поля.
📹 Cмотреть курс: тык
👉 @SQLPortal | #курсы
В этом видеоуроке автор подробно и наглядно разбирает процесс проектирования рассылочного сервиса со списками получателей, сегментами и отчетами, используя связи 1-ко-многим и многие-ко-многим. Вы научитесь использовать полиморфные связи и создавать json-поля.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8🔥1
В SQL можно писать циклы без циклов!
Ты знал, что SQL умеет рекурсивно создавать данные без таблиц?
Вот, например, как сделать последовательность чисел от
⏩
⏩ Начинаем с 1.
⏩ В
⏩ Останавливаемся на 100.
Если было полезно — жду твоего🔥
👉 @SQLPortal
Ты знал, что SQL умеет рекурсивно создавать данные без таблиц?
Вот, например, как сделать последовательность чисел от
1 до 100
без LOOP, WHILE
и даже без исходной таблицы:WITH RECURSIVE numbers AS (
SELECT 1 AS n
UNION ALL
SELECT n + 1 FROM numbers WHERE n < 100
)
SELECT * FROM numbers;
WITH RECURSIVE
создает временную таблицу.UNION ALL
прибавляем 1 на каждой итерации.Если было полезно — жду твоего
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥46❤7👍7
Оператор
Оператор
👉 @SQLPortal
INSERT INTO SELECT
в SQLОператор
INSERT INTO SELECT
используется для копирования данных из одной таблицы в другую. Это удобно, когда нужно перенести данные или создать их резервную копию.Please open Telegram to view this post
VIEW IN TELEGRAM
👍10🔥6
Обычно
SUM() OVER()
считает всё подряд, но что если нам нужна сумма только за последние N
дней, без геморроя?Решение – используем
RANGE BETWEEN INTERVAL!
SELECT
user_id,
transaction_date,
amount,
SUM(amount) OVER (
PARTITION BY user_id
ORDER BY transaction_date
RANGE BETWEEN INTERVAL '7 days' PRECEDING AND CURRENT ROW
) AS rolling_sum
FROM transactions;
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥18👍11🤯3
SQL-фишка, которая сразит наповал:
Простой способ выбрать самую дорогую покупку каждого клиента без кучи вложенных запросов!
☑ Работает быстрее и чище, чем GROUP BY + MAX. Рекомендуется для любых построчных подзапросов.
👉 @SQLPortal
LATERAL (или CROSS APPLY)
Простой способ выбрать самую дорогую покупку каждого клиента без кучи вложенных запросов!
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍20❤6👀4🔥3
Разбор вопроса с собеседования: SQL-запрос для выборки данных по условию
На собеседованиях по SQL часто встречаются задачи, связанные с использованием шаблонов и фильтрации данных. Рассмотрим один из таких вопросов
👉 @SQLPortal
На собеседованиях по SQL часто встречаются задачи, связанные с использованием шаблонов и фильтрации данных. Рассмотрим один из таких вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
👍16❤4🔥3
Master_SQL.pdf
754.9 KB
Руководство по SQL 🔥
Это руководство охватывает различные аспекты, начиная с основ SQL и до более сложных тем
Материал дополнен практическими примерами, которые способствуют лучшему усвоению информации
Сохраняйте, чтобы не потерять
👉 @SQLPortal | #ресурсы
Это руководство охватывает различные аспекты, начиная с основ SQL и до более сложных тем
Материал дополнен практическими примерами, которые способствуют лучшему усвоению информации
Сохраняйте, чтобы не потерять
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥10👍3😁2
Топ-10 техник масштабирования баз данных, которые вам стоит знать:
Сохраняй чтобы не забыть!
👉 @SQLPortal
🍩 Индексирование: Создавайте индексы на часто запрашиваемых столбцах, чтобы ускорить извлечение данных.🍩 Вертикальное масштабирование: Обновите сервер базы данных, добавив больше процессора, ОЗУ или хранилища для обработки увеличенной нагрузки.🍩 Кэширование: Храните часто запрашиваемые данные в памяти (например, Redis, Memcached), чтобы снизить нагрузку на базу данных и улучшить время отклика.🍩 Шардинг: Распределяйте данные по нескольким серверам, разделив базу данных на более мелкие независимые шардированные части, что позволяет достичь горизонтального масштабирования и улучшенной производительности.🍩 Репликация: Создавайте несколько копий (реплик) базы данных на разных серверах, позволяя распределять запросы на чтение по репликам и улучшая доступность.🍩 Оптимизация запросов: Тщательно настраивайте SQL-запросы, избегайте дорогих операций и эффективно используйте индексы для улучшения скорости выполнения и снижения нагрузки на базу данных.🍩 Пуллинг соединений: Снижайте накладные расходы на открытие/закрытие соединений с базой данных, повторно используя существующие соединения, что улучшает производительность при высоком трафике.🍩 Вертикальное партиционирование: Разделите большие таблицы на более мелкие, более управляемые части (партиции), каждая из которых содержит подмножество столбцов из исходной таблицы.🍩 Денормализация: Храните данные в избыточном, но структурированном формате, чтобы минимизировать сложные объединения и ускорить работу с запросами, ориентированными на чтение.🍩 🍩 Материализованные представления: Предварительно вычисляйте и храните результаты сложных запросов как отдельные таблицы, чтобы избежать дорогостоящих перерасчетов, уменьшив нагрузку на базу данных и улучшив время отклика.
Сохраняй чтобы не забыть!
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12❤2🔥1