SQL Portal | Базы Данных
Присоединяйтесь к нашему каналу и погрузитесь в мир баз данных Связь: @devmangx РКН: https://clck.ru/3H4Wo3
Показати більше📈 Аналітичний огляд Telegram-каналу SQL Portal | Базы Данных
Канал SQL Portal | Базы Данных (@sqlportal) є активним учасником. На даний момент спільнота об'єднує 13 734 підписників, посідаючи 8 986 місце в категорії Технології та додатки та 47 042 місце у регіоні Росія.
📊 Показники аудиторії та динаміка
З моменту свого створення невідомо, проект продемонстрував стрімке зростання, зібравши аудиторію у 13 734 підписників.
За останніми даними від 15 вересня, 2026, канал демонструє стабільну активність. Хоча за останні 30 днів спостерігається зміна кількості учасників на -124, а за останні 24 години на -5, загальне охоплення залишається високим.
- Статус верифікації: Не верифікований
- Рівень залученості (ER): Середній показник залученості аудиторії становить 8.45%. Протягом перших 24 годин після публікації контент зазвичай збирає 4.75% реакцій від загальної кількості підписників.
- Охоплення публікацій: В середньому кожен допис отримує 1 161 переглядів. Протягом першої доби публікація в середньому набирає 652 переглядів.
- Реакції та взаємодія: Аудиторія активно підтримує контент: середня кількість реакцій на один пост – 4.
- Тематичні інтереси: Контент зосереджений навколо ключових тем, таких як строка, sql, индекс, postgres, колонка.
📝 Опис та контентна політика
Автор описує ресурс як майданчик для висловлення суб'єктивної думки:
“Присоединяйтесь к нашему каналу и погрузитесь в мир баз данных
Связь: @devmangx
РКН: https://clck.ru/3H4Wo3”
Завдяки високій частоті оновлень (останні дані отримано 16 вересня, 2026), канал підтримує актуальність та високий рівень охоплення публікацій. Аналітика показує, що аудиторія активно взаємодіє з контентом, що робить його важливою точкою впливу в категорії Технології та додатки.
GROUP BY, которое должен знать каждый
Если в SELECT используются неагрегированные столбцы, убедитесь, что они добавлены в GROUP BY. Это не просто хорошая практика — в некоторых базах данных это обязательное требование.
Почему это важно?
GROUP BY определяет, что представляет собой одна строка результата. База данных должна точно понимать, какое единственное значение поместить в каждую ячейку этой строки.
В запросе ниже одна строка = одна должность (job_title) внутри конкретного отдела (department). Поэтому и department, и job_title должны присутствовать в GROUP BY.
Если пропустить неагрегированный столбец:
• Некоторые СУБД вернут ошибку
• Другие могут вернуть произвольное значение
• Запрос может «работать» сегодня, но завтра вернуть некорректный результат
Общее правило
Каждый столбец в SELECT должен быть функционально зависим от GROUP BY. Если внутри одной группы столбец может содержать несколько значений, его нужно либо добавить в GROUP BY, либо использовать с агрегатной функцией.
👉 @SQLPortalAVG, SUM, MIN и MAX.
👉 @SQLPortalmysql-dump.sql.gz размером более 10 ГБ?
gunzip < mysql-dump.sql.gz | mysql -u <user> -p <database>
Этот вариант работает медленно. Некоторые говорят, что подход на картинке быстрее. Так ли это?
Вопрос: как добавить SQL statements в начало и конец dump прямо во время выполнения импорта?
#MySQL #DBA Tips
👉 @SQLPortalNOT IN или IN, когда в данных присутствует NULL.
В SQL оператор IN — это сокращённая запись нескольких условий OR, а сравнение value = NULL всегда возвращает UNKNOWN. Из-за этого запрос может вернуть неожиданный результат или вообще пустую выборку.
Если нужно учитывать NULL, обрабатывайте его явно. Добавьте условие IS NULL к IN или используйте другой подход, корректно учитывающий NULL.
Всегда тестируйте SQL-запросы с NULL, чтобы убедиться, что они работают так, как ожидается.
👉 @SQLPortalpg_cron — это расширение PostgreSQL, которое запускает задачи по расписанию прямо внутри базы, используя стандартный синтаксис cron. Если ты пишешь фоновые джобы, которые в основном сводятся к SQL-запросам, проще отдать это Postgres’у через pg_cron. Получается проще, стабильнее и без внешнего планировщика.
Настройка
В managed PostgreSQL (например, Crunchy Bridge и похожие провайдеры) pg_cron обычно уже доступен.
Если поднимаешь Postgres сам, ставишь пакет:
sudo apt install postgresql-18-cron
Дальше подключаешь расширение при старте сервера через postgresql.conf:
shared_preload_libraries = 'pg_cron'
cron.database_name = 'postgres'
shared_preload_libraries обязателен — без него расширение не загрузится.
Как работает
По умолчанию задачи выполняются в той базе, где создано расширение.
Можно явно указать другую базу через cron.schedule_in_database.
Задачи выполняются от имени роли, которая их создала. Значит, права на таблицы и команды берутся из этой роли.
Создание задач
Основная функция — cron.schedule. У неё несколько перегрузок, поведение зависит от количества аргументов.
Типичный вариант из трёх частей:
имя задачи
cron-расписание
SQL-команда
Пример:
SELECT cron.schedule(
'nightly_vacuum',
'0 3 * * *',
'VACUUM ANALYZE big_table'
);
Управление и мониторинг
Список задач лежит в cron.job.
Там есть:
имя
расписание
SQL
активна ли задача
История запусков — cron.job_run_details.
Там видно:
время старта
длительность
успех или ошибка
Повторов при ошибке нет. Задача просто логируется и ждёт следующего запуска.
Частые кейсы
чистка старых логов
nightly VACUUM для горячих таблиц
агрегация метрик по часам
перенос старых строк в архив
обновление materialized views
Реже используемые сценарии
Иногда pg_cron используют не только для базы:
батчинг запросов к внешним API (в связке с http)
ETL-процессы и выгрузка в data warehouse (например, через pg_lake)
прогрев кэша через pg_prewarm перед пиками нагрузки
👉 @SQLPortal