SQL Portal | Базы Данных
Присоединяйтесь к нашему каналу и погрузитесь в мир баз данных Связь: @devmangx РКН: https://clck.ru/3H4Wo3
Ko'proq ko'rsatish📈 Telegram kanali SQL Portal | Базы Данных analitikasi
SQL Portal | Базы Данных (@sqlportal) kanali faol ishtirokchi. Hozirda hamjamiyat 13 734 obunachidan iborat bo'lib, Texnologiyalar & Aralashmalar toifasida 8 986-o'rinni va Rossiya mintaqasida 47 042-o'rinni egallagan.
📊 Auditoriya ko‘rsatkichlari va dinamika
невідомо sanasidan buyon loyiha tez o‘sib, 13 734 obunachiga ega bo‘ldi.
15 Sentabr, 2026 dagi oxirgi ma’lumotlarga ko‘ra kanal barqaror faollikka ega. Oxirgi 30 kunda obunachilar soni -124 ga, so‘nggi 24 soatda esa -5 ga o‘zgardi va umumiy qamrov yuqori darajada qolmoqda.
- Tasdiqlash holati: Tasdiqlanmagan
- Jalb etish (ER): Auditoriya o‘rtacha 8.45% darajada jalb etiladi. Nashrdan keyingi dastlabki 24 soatda kontent odatda umumiy obunachilar sonining 4.75% ini tashkil etuvchi reaksiyalarni to‘playdi.
- Post qamrovi: Har bir post o‘rtacha 1 161 marta ko‘riladi; birinchi sutkada odatda 652 ta ko‘rish yig‘iladi.
- Reaksiyalar va o‘zaro ta’sir: Auditoriya faol: har bir postga o‘rtacha 4 ta reaksiya keladi.
- Tematik yo‘nalishlar: Kontent строка, sql, индекс, postgres, колонка kabi asosiy mavzularga jamlangan.
📝 Tavsif va kontent siyosati
Muallif resursni shaxsiy fikrni ifoda etish maydoni sifatida ta’riflaydi:
“Присоединяйтесь к нашему каналу и погрузитесь в мир баз данных
Связь: @devmangx
РКН: https://clck.ru/3H4Wo3”
Yuqori yangilanish chastotasi (oxirgi ma’lumot 16 Sentabr, 2026 da olingan) sababli kanal doimo dolzarb va katta qamrovli bo‘lib qoladi. Analitika auditoriya kontent bilan faol hamkorlik qilishini, uni Texnologiyalar & Aralashmalar toifasidagi muhim ta’sir nuqtasiga aylantirishini ko‘rsatadi.
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