fa
Feedback
SQL Academy: всё о реляционных БД и SQL

SQL Academy: всё о реляционных БД и SQL

رفتن به کانال در Telegram

По всем вопросам и коммерческим предложениям писать @LadanovNick Купить рекламу: https://telega.in/c/sqlacademyofficial Чат студентов SQL Academy https://t.me/sqlacademyorg

نمایش بیشتر

📈 تحلیل کانال تلگرام SQL Academy: всё о реляционных БД и SQL

کانال SQL Academy: всё о реляционных БД и SQL (@sqlacademyofficial) در بخش زبانی روسی بازیگری فعال است. در حال حاضر جامعه شامل 11 363 مشترک است و جایگاه 10 911 را در دسته فناوری و برنامه‌ها و رتبه 57 339 را در منطقه روسيا دارد.

📊 شاخص‌های مخاطب و پویایی

از زمان ایجاد در невідомо، پروژه رشد سریعی داشته و 11 363 مشترک جذب کرده است.

بر اساس آخرین داده‌ها در تاریخ 27 ژوئن, 2026، کانال فعالیت پایداری دارد. در ۳۰ روز گذشته تغییر اعضا برابر 173 و در ۲۴ ساعت گذشته برابر 1 بوده و همچنان دسترسی گسترده‌ای حفظ شده است.

  • وضعیت تأیید: تأیید نشده
  • نرخ تعامل (ER): میانگین تعامل مخاطب 17.59% است و در ۲۴ ساعت نخست پس از انتشار، محتوا معمولاً N/A% واکنش نسبت به کل مشترکان کسب می‌کند.
  • دسترسی پست‌ها: هر پست به طور میانگین 1 997 بازدید دریافت می‌کند. در اولین روز معمولاً 0 بازدید جمع‌آوری می‌شود.
  • واکنش‌ها و تعامل: مخاطبان به‌طور فعال حمایت می‌کنند؛ میانگین واکنش به هر پست 16 است.
  • علایق موضوعی: محتوا بر موضوعات کلیدی مانند sql, строка, индекс, auto_increment, created_at تمرکز دارد.

📝 توضیح و سیاست محتوایی

نویسنده این فضا را محل بیان دیدگاه‌های شخصی توصیف می‌کند:
По всем вопросам и коммерческим предложениям писать @LadanovNick Купить рекламу: https://telega.in/c/sqlacademyofficial Чат студентов SQL Academy https://t.me/sqlacademyorg

به لطف به‌روزرسانی‌های پرتکرار (آخرین داده در تاریخ 28 ژوئن, 2026)، کانال همواره به‌روز و دارای دسترسی بالاست. تحلیل‌ها نشان می‌دهد مخاطبان به‌طور فعال با محتوا تعامل دارند و آن را به نقطه اثرگذاری مهم در دسته فناوری و برنامه‌ها تبدیل کرده‌اند.

11 363
مشترکین
+124 ساعت
+497 روز
+17330 روز
آرشیو پست ها
Станьте AI-разработчиком на Python и зарабатывайте от 150.000₽ в месяц 🔥🔥🔥 Мы научим вас создавать и тренировать нейронные сети, и вы сможете: 1️⃣ Устроиться разработчиком в крупную компанию и зарабатывать от 150 тыс. ₽ в месяц 2️⃣ Разрабатывать такие проекты на заказ и зарабатывать от 500 тыс. ₽ за проект 3️⃣ Создать нейро-сотрудника в вашей компании и вырасти на +30-100% в зарплате На интенсиве будет много практики: создадим 9 нейросетей за 1 вечер: 🧬 Прогноз стоимости золота 🧬 Сегментация изображения для робота доставщика 🧬 Трекинг людей на видео Ведущий интенсива - Senior AI-разработчик и основатель Университета искусственного интеллекта 🔥 Регистрируйтесь на бесплатный интенсив! Встречаемся в ближайшую среду

Event Scheduler в MySQL: что это и как его использовать? ⏰ Event Scheduler — это механизм MySQL, который позволяет автоматиче
Event Scheduler в MySQL: что это и как его использовать? ⏰ Event Scheduler — это механизм MySQL, который позволяет автоматически выполнять SQL-запросы в заданное время или с определенной периодичностью. Это аналог CRON, но работает внутри MySQL. 📌 Применение Event Scheduler: ✅ Очистка старых данных (логов, временных записей) 🗑️ ✅ Автоматическое обновление данных 📊 ✅ Генерация отчетов и статистики 📈 ✅ Автоматическое создание резервных копий 💾 🔹 Как включить Event Scheduler? По умолчанию Event Scheduler может быть выключен. Проверить его статус можно так:

SHOW VARIABLES LIKE 'event_scheduler';
Если он OFF, включаем его:

SET GLOBAL event_scheduler = ON;
🔹 Создание событий в MySQL Простейший пример однократного события:

CREATE EVENT delete_old_logs
ON SCHEDULE AT CURRENT_TIMESTAMP + INTERVAL 1 HOUR
DO
DELETE FROM logs WHERE created_at < NOW() - INTERVAL 30 DAY;
💡 Это событие запустится один раз через 1 час и удалит старые логи. 🔹 Периодическое выполнение событий Если нужно выполнять задачу регулярно, используем EVERY:

CREATE EVENT update_stats
ON SCHEDULE EVERY 1 DAY
DO
UPDATE statistics SET last_updated = NOW();
Это событие будет обновлять таблицу каждый день. 🔹 Управление событиями 📌 Посмотреть все события в базе:

SHOW EVENTS;
📌 Остановить событие:

ALTER EVENT update_stats DISABLE;
📌 Запустить снова:

ALTER EVENT update_stats ENABLE;
📌 Удалить событие:

DROP EVENT delete_old_logs;
🔹 Что важно помнить? 1️⃣ События привязаны к БД, где они созданы. Если сделать USE другая_БД, событие не будет видно. 2️⃣ События выполняются от имени пользователя, который их создал, с его правами. 3️⃣ Если сервер MySQL перезапустится, события сохраняются, но Event Scheduler может выключиться — проверяйте его статус! ✅

Хотите свести к минимуму риск потери информации? Тогда ждём вас на вебинаре «Как обеспечить отказоустойчивость хранилищ данны
Хотите свести к минимуму риск потери информации? Тогда ждём вас на вебинаре «Как обеспечить отказоустойчивость хранилищ данных» В результате вы сможете: - Разобраться в стратегии репликации, резервного копирования и автоматического фейловера - Изучить архитектурные решения и инструменты для проектирования систем с высокой доступностью - Эффективно сохранять данные при сбоях - Улучшить пользовательский опыт Будет интересно сисадминам, разработчикам, архитекторам ПО, IT-менеджерам, администраторам БД. Спикер: Дмитрий Золотов, Kotlin-разработчик в «Яндексе». Бонус! Всем участникам – скидка 5% на любой курс и гайд «Разбор ошибок: 5 распространённых проблем при проектировании отказоустойчивых хранилищ» 3 апреля, в 19:00 МСК, Бесплатно Записаться на событие - https://otus.pw/KKET/?erid=2W5zFGn7ihE Реклама. ООО "ОТУС ОНЛАЙН-ОБРАЗОВАНИЕ". ИНН 9705100963.

Ваши SQL-запросы работают медленно, а базы данных грузятся дольше, чем хотелось бы? Исправим это на нашем бесплатном уроке 31
Ваши SQL-запросы работают медленно, а базы данных грузятся дольше, чем хотелось бы? Исправим это на нашем бесплатном уроке 31 марта в 20:00 мск: https://otus.pw/38hM/ Индексы — один из ключевых инструментов ускорения работы с БД. Но как выбрать нужный тип, правильно его создать и избежать ошибок? После занятия вы сможете уверенно работать с индексами в PostgreSQL и MS SQL Server, оптимизировать запросы и делать базы данных быстрее.  Регистрируйтесь прямо сейчас и получите скидку на большое обучение «SQL для разработчиков и аналитиков»: https://otus.pw/38hM/ erid: 2W5zFHQJ1ua

Инструменты безопасности в Kubernetes Рассказываем про тулинг для построения более безопасной инфраструктуры на бесплатном ве
Инструменты безопасности в Kubernetes Рассказываем про тулинг для построения более безопасной инфраструктуры на бесплатном вебинаре «Защищаем  инфраструктуру Kubernetes без боли». Разберём: - что есть в экосистеме k8s и зачем это применять - когда не оправдано закручивание гаек в инфраструктуре Спикер: Виталий Лихачев, SRE в крупном нидерландском тревелтехе. Дата: 27 марта 20:00 Занять место  — через бота. Подарок в конце вебинара 🎁 Вебинар проходит в рамках курса «Kubernetes Мега»  #реклама О рекламодателе erid: 2W5zFHdNnmn

Как устроены хранилища MySQL: InnoDB vs MyISAM vs MEMORY 🏗️ Когда вы создаёте таблицу в MySQL, у неё есть так называемый дви
Как устроены хранилища MySQL: InnoDB vs MyISAM vs MEMORY 🏗️ Когда вы создаёте таблицу в MySQL, у неё есть так называемый движок хранения (storage engine). Это то, как MySQL управляет данными внутри таблицы: где их хранить, как их обновлять и как быстро к ним обращаться. В MySQL есть несколько движков, но самые популярные: 🔹InnoDB — стандартный и самый надёжный вариант 🔥 🔹MyISAM — старый, быстрый, но без транзакций ⚡ 🔹MEMORY — для супербыстрых временных таблиц 🧠 Давайте разберёмся, в чём их различия и когда какой использовать. 🔥 InnoDB — современный стандарт InnoDB — это основной и рекомендуемый движок в MySQL. Он поддерживает транзакции, обеспечивает целостность данных и отлично подходит для больших нагрузок. Основные особенности:Поддержка транзакций — если что-то пошло не так, можно откатить изменения (ROLLBACK). ✅ Поддержка внешних ключей — можно строить связи между таблицами (FOREIGN KEY). ✅ Блокировка на уровне строк — если обновляется одна строка, другие остаются доступными. ✅ Хранит данные в кластеризованном индексе — быстрее работает с PRIMARY KEY. 🛠 Где используется? 🔹В интернет-магазинах, CRM-системах, SaaS-проектах. 🔹Там, где важна целостность данных (например, банковские операции). 🔹Если нужна высокая скорость чтения и записи одновременно. ⚡ MyISAM — быстрый, но устаревший MyISAM был основным движком в MySQL до версии 5.5. Он работает быстрее, но не поддерживает транзакции. Основные особенности: ✅ Очень быстрое чтение данных — идеален для аналитики. ✅ Легче в администрировании — структура проще, чем у InnoDB. ❌ Минусы: 🔹 Нет транзакций — если сервер упадёт во время записи, можно потерять данные. 🔹 Блокировка на уровне таблицы — если обновляется одна строка, вся таблица заблокирована. 🔹 Нет внешних ключей — нельзя строить сложные связи между таблицами. 🛠 Где используется? 🔹В системах, где важнее скорость чтения, а не записи (например, блоги, статистика). 🔹В проектах, где потеря данных не критична. 🔹Сейчас почти не используется, потому что InnoDB во многом его заменил. 🧠 MEMORY — супербыстрые временные таблицы MEMORY хранит данные не на диске, а в оперативной памяти (RAM). Это делает его невероятно быстрым, но с одной важной особенностью: при перезапуске MySQL все данные исчезают! Основные особенности: ✅ Молниеносная скорость — идеально для временных данных. ✅ Нет нагрузки на диск — всё работает в оперативке. ✅ Отлично подходит для кэша — можно временно хранить результаты сложных запросов. ❌ Минусы: 🔹Данные исчезают при рестарте MySQL. 🔹Не поддерживает TEXT и BLOB (нельзя хранить большие строки и файлы). 🔹Ограничение на размер — зависит от объёма оперативной памяти. 🛠 Где используется? 🔹Временные таблицы для отчётов. 🔹Кэширование данных, которые часто запрашиваются. 🔹Для промежуточных вычислений. 🏆 Какой движок выбрать? 🔹Если не знаете, что выбрать — берите InnoDB. Он безопасный, поддерживает транзакции и гибкий. 🔹MyISAM хорош только для устаревших проектов, но сейчас почти не используется. 🔹MEMORY подходит для временных данных, если они не должны сохраняться после перезапуска сервера. Теперь вы знаете, как устроены хранилища MySQL и какой движок выбрать для своего проекта! 🚀

Хотите глубже понять управление процессами в микросервисах и повысить надёжность систем? На ум сразу приходят распределённые
Хотите глубже понять управление процессами в микросервисах и повысить надёжность систем? На ум сразу приходят распределённые транзакции – классический, но, увы, проблематичный метод. Но мы предлагаем кое-что получше: шаблон «Сага»! На открытом вебинаре “«Саги» vs распределённые транзакции: как моделировать рабочие потоки в распределённой архитектуре” вы узнаете: - Почему распределённые транзакции могут быть непрактичны в контексте микросервисов - Как работает Сага и в чём преимущества этого шаблона - Какие типы «саг» существуют и как их применять - Как использовать Сагу для моделирования сложных рабочих потоков И, конечно же, получите важные рекомендации по внедрению саг в реальных проектах. Будет интересно архитекторам ПО, системным аналитикам, бэкенд и фулстек-разработчикам. Спикер: Сергей Прощаев Java-разработчик в ПАО «Сургутнефтегаз». Бонус! Скидка 5% на любой курс OTUS и чек-лист «Подойдёт ли вам шаблон SAGA? Семь вопросов создателю проекта» 25 марта, 19:00 МСК, Бесплатно Записаться на событие - https://otus.pw/rjyJ/?erid=2W5zFJUEgmv Реклама. ООО "ОТУС ОНЛАЙН-ОБРАЗОВАНИЕ". ИНН 9705100963.

1080x1080work_flows_in_distributed_architecture.png4.97 KB

✨ Запускаем практику-стажировку по созданию и тестированию ИИ-ассистентов на базе нашего веб-приложения VitaGPT https://vitag
✨ Запускаем практику-стажировку по созданию и тестированию ИИ-ассистентов на базе нашего веб-приложения VitaGPT https://vitagpt.ai-chatbot.studio/ и передовых языковых моделей AI LLM. ✅ Для кого: 💫 Для всех, кто интересуется ИИ, нейросетями, ИИ-агентами и хотел бы научиться их применять для личных и/или профессиональных целей ✅ Что получишь: ✨ Навыки создания и тестирования ИИ-ассистентов. ✨ Опыт работы с реальным ИИ-проектом (в резюме). ✨ Возможность создать личного ИИ-помощника. ✨ Возможность создать ассистента для консультирования клиентов. ✨ Знания промт-инжиниринга, векторных баз данных, интеграции с Google Поиск, Flux и API. ✅ Информация о вебинаре и стажировке: Посмотри запись вебинара-знакомства, на котором мы рассказали все детали проекта и ответили на частые вопросы: https://t.me/vitagpt/30 ✔️ Продолжительность: 5 недель. ✔️ Занятость: обучающие вебинары раз в неделю (2-3 часа, доступны записи), плюс 1-2 часа в день на самостоятельную работу (возможно выполнение заданий в выходные). ✔️ Сертификат по окончании стажировки. ☑️ Отзывы после стажировок https://t.me/vitagpt_community/45?erid=2W5zFGv1Xqz ✅ Успей зарегистрироваться! Для записи пиши в https://t.me/chatgpt_ai_chatbot_studio_bot ✅ Преимущества: ✍🏻 Практический опыт. 🤖 Собственный ИИ-ассистент. 🤩 Комьюнити ИИ-энтузиастов.

Как эффективно управлять доступом пользователей к базе данных, используя роли? Разберем основные механизмы безопасности Postg
Как эффективно управлять доступом пользователей к базе данных, используя роли? Разберем основные механизмы безопасности PostgreSQL на практике: шифрование соединений (SSL/TLS), контроль доступа (pg_hba.conf, роли, RLS), аудит (pg_audit). Приглашаем на открытый практический урок «Безопасность в PostgreSQL: защита данных, управление доступом и аудит» в рамках курса PostgreSQL для администраторов баз данных и разработчиков ✅ Практика: настройка SSL/TLS шифрование для защиты данных при передаче, обеспечивая конфиденциальность обмена информацией между клиентом и сервером PostgreSQL. Покажем, как защититься от распространенных угроз:SQL-инъекции, DDoS-атаки. 👉  Регистрация и подробности:  https://otus.pw/BAsz/?erid=2W5zFGg9Qtg #реклама О рекламодателе

☁️🚀Terraform в действии: автоматизируйте облако без ошибок! 📅19 марта в 20:00 мск приглашаем на практическое занятие с Андр
☁️🚀Terraform в действии: автоматизируйте облако без ошибок! 📅19 марта в 20:00 мск приглашаем на практическое занятие с Андреем Поляковым. Хотите сократить рутинные задачи, ускорить развертывание инфраструктуры и минимизировать риски? Разберём, как Terraform помогает эффективно управлять облачными ресурсами в Яндекс Облаке. На вебинаре вы узнаете: ✅ Как быстро развернуть инфраструктуру в коде и управлять изменениями ✅ Как избежать ошибок при работе с Terraform и обеспечить стабильность проектов ✅Как использовать модули, стейт-файлы и CI/CD для автоматизации ✅Как оптимизировать развертывание облачной инфраструктуры (ВМ, сети, БД) ⚡Регистрация: https://otus.pw/GPf2/?erid=2W5zFJYUDCC Занятие приурочено к старту курса Cloud Solution Architecture, обучение на котором позволит получить знания в области Agile разработки и сопровождения архитектуры облачных решений. Реклама. ООО "ОТУС ОНЛАЙН-ОБРАЗОВАНИЕ". ИНН 9705100963.

🔐 Как хранить пароли в базе данных? 🤔 Если вы храните пароли в базе как обычный текст — вы в опасности! 🚨 Это одна из самы
🔐 Как хранить пароли в базе данных? 🤔 Если вы храните пароли в базе как обычный текст — вы в опасности! 🚨 Это одна из самых больших ошибок в безопасности. Давайте разберёмся, как правильно хранить пароли в MySQL, чтобы ваши пользователи были защищены! 🔒 🚫 Плохие способы хранения паролей 1. Хранение пароля в открытом виде:

INSERT INTO users (username, password) VALUES ('kolya', 'mypassword123');
👉 Это ужасная практика! Если база данных утечёт, злоумышленники сразу получат доступ ко всем аккаунтам! 😱 2. Использование MD5/SHA1:

INSERT INTO users (username, password) VALUES ('kolya', 'bff149a0b87f5b0e00d9dd364e9ddaa0');
👉 MD5 и SHA1 устарели и больше не считаются безопасными! Их можно взломать с помощью радужных таблиц (rainbow tables) 🌈 или перебора (brute force). 🛑 ✅ Хороший способ: хеширование паролей 🔒 Лучший способ защитить пароли — использовать bcrypt или Argon2. В MySQL есть встроенная функция PASSWORD(), но её не рекомендуют использовать, так как она небезопасна! 😕 Вместо этого используем bcrypt. 🎉 🔹 Как хешировать пароль в Python (рекомендуется)

import bcrypt

password = b'mypassword123'
hashed_password = bcrypt.hashpw(password, bcrypt.gensalt())
print(hashed_password)
🔹 Как хранить хеш в базе:

CREATE TABLE users (
    id INT PRIMARY KEY,
    username VARCHAR(255) UNIQUE,
    password_hash VARCHAR(255)
);

INSERT INTO users (username, password_hash) VALUES ('kolya', '$2y$10$abcdefghijABCDEFGHIJ1234567890');
👉 Здесь password_hash хранит уже захешированный пароль, а не сам пароль! 🔐 🔓 Как проверить пароль при входе? В Python:

if bcrypt.checkpw(b'mypassword123', stored_hash.encode()):
    print('Пароль верный! ✅')
else:
    print('Неправильный пароль! ❌')
🛡 Итог ❌ НЕ храните пароли в открытом виде! 🚫 ❌ НЕ используйте MD5 или SHA1! ❗️ ✅ ИСПОЛЬЗУЙТЕ bcrypt или Argon2! 🔥 ✅ ИСПОЛЬЗУЙТЕ bcrypt.hashpw() и bcrypt.checkpw() в Python! 🏆 Следуя этим правилам, вы защитите данные пользователей и сделаете свой сервис безопаснее! 🔒💪

Хотите создать сильную, мотивированную и ответственную IT-команду? Такую, с которой хоть в огонь, хоть в воду? Тогда избавляй
Хотите создать сильную, мотивированную и ответственную IT-команду? Такую, с которой хоть в огонь, хоть в воду? Тогда избавляйтесь от микроменеджмента и внедряйте коучинговый подход. На вебинаре «Коучинговый стиль управления: как растить звёзд внутри команды» вы узнаете:  - Чем опасен микроменеджмент, и как от него избавиться? - Как реализовать коучинговый подход? - Какие инструменты для развития сотрудников – эффективны? - Как направить сотрудников на путь профессионального роста? - Как создать в команде атмосферу доверия и повысить уровень ответственности? Будет интересно директорам компаний, руководителям команд и проектов, а также эйчарам. Спикер: Лилия Гильмутдинова, эксперт по клиентскому сервису и бизнес-процессам. Бонус! Всем участникам – скидка 5% на любой курс OTUS и эксклюзивные материалы в подарок. 18 марта, 19:00 МСК Бесплатно Записаться на событие - https://otus.pw/cnD1/?erid=2W5zFJa8HJY Реклама. ООО "ОТУС ОНЛАЙН-ОБРАЗОВАНИЕ". ИНН 9705100963.

⚡️Как эффективно устранять дубликаты в ClickHouse: Практический вебинар 18 марта в 18:30 (мск) — присоединяйтесь к вебинару с
⚡️Как эффективно устранять дубликаты в ClickHouse: Практический вебинар 18 марта в 18:30 (мск) — присоединяйтесь к вебинару с Алексеем Железным и разберитесь с механиками дедупликации данных в ClickHouse! 🔥На занятии вы: > Освоите методы удаления дубликатов с помощью ReplacingMergeTree и UNIQUE. > Научитесь использовать GROUP BY + FINAL для оптимизации запросов. > Поймёте, как минимизировать накладные расходы при дедупликации. ❗️После вебинара вы сможете эффективно устранять дубликаты данных, выбирать правильные подходы и повысить производительность своих запросов в ClickHouse. Регистрируйтесь на вебинар и улучшайте свои навыки! 👉 Регистрация: https://otus.pw/anot/?erid=2W5zFJiwWBA Реклама. ООО "ОТУС ОНЛАЙН-ОБРАЗОВАНИЕ". ИНН 9705100963.

⏰До -37% на курсы этой весной! Админы, DevOps`ы, инженеры, вам сюда! 💫Собрали курсы, которые охватывают весь спектр необходи
⏰До -37% на курсы этой весной! Админы, DevOps`ы, инженеры, вам сюда! 💫Собрали курсы, которые охватывают весь спектр необходимых знаний и инструментов для профессионального роста 一 от контейнеризации с Docker и оркестрации с Kubernetes, до автоматизации CI/CD и управления облачной инфраструктурой. 💫 На курсах учим мониторить и логировать системы, строить надежные CI/CD пайплайны, работать с Apach Kafka, предоставлять и поддерживать вычислительную инфраструктуру с помощью кода и многое другое. 👉🏻Переходите на сайт и выбирайте обучение с выгодой до 25 000р

📊 Медиана в SQL: почему она важнее среднего? Среднее арифметическое (AVG()) часто используется для анализа данных, но иногда
📊 Медиана в SQL: почему она важнее среднего? Среднее арифметическое (AVG()) часто используется для анализа данных, но иногда оно даёт искажённые результаты. Например, представьте, что у нас есть 11 сотрудников: 🔹10 человек получают 40 000 💰 🔹1 человек получает 5 000 000 💰 Если посчитать среднюю зарплату, получится:

SELECT AVG(salary) FROM salaries;
👉 Средняя зарплата: 490 000 Но разве это отражает реальность? Большинство сотрудников получают 40 000, а один выбивает статистику. ✅ Медиана (MEDIAN) — это значение, которое делит отсортированные данные пополам: половина значений меньше, половина больше. В данном случае медиана = 40 000, что лучше отражает ситуацию. 📌 Как посчитать медиану в MySQL? В отличие от AVG(), в MySQL нет встроенной функции MEDIAN(), но её можно посчитать разными способами. 1️⃣ Метод через ORDER BY LIMIT (для нечётного количества записей) Если записей нечётное количество, медиана — это значение в центре списка:

SELECT salary FROM salaries 
ORDER BY salary 
LIMIT 1 OFFSET (SELECT COUNT(*) FROM salaries) / 2;
⚠️ Минус: Работает только для нечётного количества записей. 2️⃣ Метод через ROW_NUMBER() (универсальный способ) Этот метод работает и для чётного, и для нечётного количества записей:

WITH ordered AS (
    SELECT salary, ROW_NUMBER() OVER (ORDER BY salary) AS rn,
           COUNT(*) OVER () AS total
    FROM salaries
)
SELECT AVG(salary) FROM ordered 
WHERE rn IN (FLOOR((total + 1) / 2), CEIL((total + 1) / 2));
🔹 Мы нумеруем строки с ROW_NUMBER(). 🔹 Выбираем одно или два центральных значения. 🔹 Берём их среднее (AVG()) — для чётного числа записей берётся среднее двух центральных значений. 🏆 ИтогМедиана полезнее среднего арифметического, когда есть выбросы в данных. ✅ В MySQL нет встроенной MEDIAN(), но её можно вычислить с ROW_NUMBER(). ✅ Используйте медиану, если хотите честную аналитику! 🚀

Как работает автоматическое переключение на резервный сервер в случае сбоя основного? Разберем концепцию высокой доступности
Как работает автоматическое переключение на резервный сервер в случае сбоя основного?  Разберем концепцию высокой доступности баз данных и автоматического failover на практике Приглашаем на открытый практический урок «Отказоустойчивый кластер Patroni» в рамках курса PostgreSQL для администраторов баз данных и разработчиков ✅ Практика: настройка кластер Patroni, включая конфигурацию DCS, настройку PostgreSQL и HAProxy.  Освойте основные команды Patroni для управления кластером, такие как переключение ролей, перезагрузка, реинициализация и настройка синхронной репликации.  Навыки полученные на уроке позволят создать отказоустойчивые решения для своих баз данных и эффективно администрировать отказоустойчивые кластеры PostgreSQL. 👉  Регистрация и подробности:  https://otus.pw/2ydR/?erid=2W5zFJHiNTa #реклама О рекламодателе

⚡️Как эффективно мигрировать данные в ClickHouse: Денормализация и оптимизация 11 марта в 20:00 мск — присоединяйтесь к вебин
⚡️Как эффективно мигрировать данные в ClickHouse: Денормализация и оптимизация 11 марта в 20:00 мск — присоединяйтесь к вебинару с Константином Трофимовым и узнайте, как ускорить аналитику с помощью правильной миграции данных! На вебинаре вы: > Изучите методы импорта данных из других систем в ClickHouse. > Научитесь денормализовать данные для ускорения запросов. > Узнаете, как обогатить данные с помощью словарей и других функций ClickHouse. 🔥После вебинара вы будете уверенно работать с миграцией данных в ClickHouse, улучшать производительность и избегать распространенных ошибок при переходе на новую систему. Запишитесь на вебинар и улучшите свои навыки уже сегодня! 👉 Регистрация: https://otus.pw/fbfF/?erid=2W5zFGkYgf2 Реклама. ООО "ОТУС ОНЛАЙН-ОБРАЗОВАНИЕ". ИНН 9705100963.

Генерируемые столбцы (Generated Columns) в MySQL — это столбцы, значение которых вычисляется автоматически на основе других с
Генерируемые столбцы (Generated Columns) в MySQL — это столбцы, значение которых вычисляется автоматически на основе других столбцов в таблице. Это очень удобно, когда нужно всегда иметь «актуальную» производную величину (например, итоговую стоимость, индекс массы тела, коэффициент, результат арифметических операций и т.д.), при этом не писать лишний код или триггеры. 🔮 В чём суть? ⚙️ Вместо того чтобы хранить формулу в приложении, мы «встраиваем» логику прямо в таблицу. При обновлении данных в базовых полях вычисляемый столбец тоже меняется. Два вида генерируемых столбцов: 🔹VIRTUAL (виртуальный) Значение вычисляется «на лету» при выборе из таблицы и не хранится физически. 🔹STORED (сохранённый) Значение сохраняется в таблице и обновляется при изменении данных. Имеет свой физический размер, но и доступ к нему быстрее (особенно при частых запросах). Пример создания таблицы с генерируемым столбцом Предположим, у нас есть таблица для хранения товаров. В ней мы хотим автоматически высчитывать итоговую стоимость (total_cost) как произведение цены price на количество quantity.

CREATE TABLE items (
  id INT AUTO_INCREMENT PRIMARY KEY,
  price DECIMAL(10,2),
  quantity INT,
  -- Генерируемый столбец, который будет хранить итоговую стоимость
  total_cost DECIMAL(10,2) AS (price * quantity) STORED
);
🔹AS (price * quantity) — формула, по которой будет вычисляться столбец total_cost. 🔹STORED означает, что итоговая стоимость будет записываться в таблицу и быстренько выдаваться из физического хранения. 🔹При вставке или обновлении записи MySQL сама позаботится о том, чтобы total_cost пересчитался. А если сделать виртуальный столбец? 💡 Чтобы не занимать место на диске, используем VIRTUAL:

CREATE TABLE items_virtual (
  id INT AUTO_INCREMENT PRIMARY KEY,
  price DECIMAL(10,2),
  quantity INT,
  total_cost DECIMAL(10,2) 
    AS (price * quantity) VIRTUAL
);
🔹 Поле total_cost не хранится физически. Оно вычисляется при каждом чтении строки. 🔹При частом чтении большого количества строк запросы могут работать чуть медленнее, ведь каждый раз идёт пересчёт. 🔹Зато при редких выборках и частых обновлениях виртуальный столбец может быть выгоднее, так как не используется дополнительное место на хранение. Индексация и ограничения 🔑 🔹STORED столбцы можно индексировать, а значит, быстрее искать по ним. 🔹VIRTUAL столбцы индексировать нельзя Подводим итоги 🏆 🔹Генерируемые столбцы избавляют от необходимости самостоятельно следить за обновлением вычисляемых значений. 🔹Выбор между VIRTUAL и STORED зависит от частоты чтения/записи, а также необходимости индексации. 🔹Такой подход упрощает архитектуру БД и код приложения: формула одна, лежит «рядом с данными», все операции прозрачны и понятны. Если вам нужно ускорить расчёт «сложной формулы» или хранить результат для аналитических задач — выбирайте STORED. Если поле лишь вспомогательное, используйте VIRTUAL.

Представьте: вы только что внедрили умный фреймворк, который точно повысит эффективность разработки. Но вот этот отдельный со
Представьте: вы только что внедрили умный фреймворк, который точно повысит эффективность разработки. Но вот этот отдельный сотрудник отстаёт по показателям! Что же делать? Уволить сотрудника или пересмотреть зоны ответственности? На открытом вебинаре «Как распределять роли в IT-команде для повышения производительности?» вы узнате: - как оценивать возможности команды, исходя из качеств и особенностей ваших сотрудников - как эффективно распределять роли в соответствии с типами сотрудников - как собрать и сохранить эффективную команду - как успешно подобрать кандидата на нужную позицию - какими бывают командные роли Будет интересно: опытным и начинающим тимлидам, CTO, CIO, менеджерам проектов и продуктов, руководителям IT-отделов, а также эйчарам Вебинар проведёт Михаил Савинов, технический директор в компании «Мокка». Бонус! Всем участникам – скидка 5% на любой курс и ценный подарок: «Список вопросов для определения командных ролей». 26 февраля, 19:00 МСК, Бесплатно Записаться на событие - https://otus.pw/T0B1/?erid=2W5zFHjZWKz Реклама. ООО "ОТУС ОНЛАЙН-ОБРАЗОВАНИЕ". ИНН 9705100963.