Где верно прописано удаление поля в таблице?
Anonymous Quiz
18%
DROP Users COLUMN name;
8%
SELECT Users DROP COLUMN name;
9%
TRUNCATE Users DROP COLUMN name;
55%
ALTER TABLE Users DROP COLUMN name;
10%
Узнать ответ
Продвинутый SQL-совет: используйте partial indexes как «селективный ускоритель», но не только для WHERE — ещё и для JOIN-ов.
Большинство разработчиков делают частичные индексы так:
CREATE INDEX idx_active_users ON users(id) WHERE active = true;
Но фишка в том, что partial index может радикально ускорить запросы, где фильтр стоит не в WHERE, а «прячется» в JOIN-условии. Оптимизатор всё равно понимает условие и использует индекс.
Например, у вас есть таблица logs, где 95% строк — архив, и только 5% актуальные. Запрос делает join:
Если делать обычный индекс, он будет огромный. Но partial index:
Теперь:
- индекс в 20–30 раз меньше
- cache hit rate выше
- планы меняются с seq scan на index scan
- JOIN начинает работать почти как в in-memory базе
Прикольно, что работает даже если в SELECT самого условия нет — главное, чтобы оно было в ON.
Это отличный способ ускорять «холодные» большие таблицы, где часто обращаются только к маленькому активному сегменту.
Большинство разработчиков делают частичные индексы так:
CREATE INDEX idx_active_users ON users(id) WHERE active = true;
Но фишка в том, что partial index может радикально ускорить запросы, где фильтр стоит не в WHERE, а «прячется» в JOIN-условии. Оптимизатор всё равно понимает условие и использует индекс.
Например, у вас есть таблица logs, где 95% строк — архив, и только 5% актуальные. Запрос делает join:
SELECT u.id, l.event
FROM users u
JOIN logs l ON l.user_id = u.id AND l.is_archived = false;
Если делать обычный индекс, он будет огромный. Но partial index:
CREATE INDEX idx_logs_active ON logs(user_id)
WHERE is_archived = false;
Теперь:
- индекс в 20–30 раз меньше
- cache hit rate выше
- планы меняются с seq scan на index scan
- JOIN начинает работать почти как в in-memory базе
Прикольно, что работает даже если в SELECT самого условия нет — главное, чтобы оно было в ON.
Это отличный способ ускорять «холодные» большие таблицы, где часто обращаются только к маленькому активному сегменту.
👍21🔥5❤3
— уже работает с PostgreSQL, а MySQL и MongoDB на очереди
— понимает обычный язык: достаточно спросить «какие пользователи были активны за месяц?»
— шифрует всё — строки подключения, пароли, запросы
— позволяет выбрать модель, на которой крутится ассистент
Опенсорс, безопасно и реально экономит время.
https://github.com/wannabespace/conar
Please open Telegram to view this post
VIEW IN TELEGRAM
🤔7❤3👍1
Как MySQL обрабатывает повторяющиеся ключи при использовании INSERT IGNORE?
Anonymous Quiz
20%
Вставляет все строки, включая дубликаты
64%
Игнорирует строки с конфликтующими ключами без ошибки
7%
Выдаёт ошибку и откатывает всю операцию
9%
Обновляет существующие строки с конфликтом
📚 Курс, который прокачает твои AI-скиллы в BigQuery
Этот курс учит работать с Gemini прямо внутри BigQuery и закрывает полный набор практических навыков:
- генерация и отладка SQL-запросов с помощью Gemini
- анализ тональности текста
- автоматические суммари и выделение ключевых слов
- генерация эмбеддингов
- построение RAG-пайплайна
- мультимодальный векторный поиск
Если хочешь уверенно использовать AI-инструменты в аналитике и продуктах — этот курс даёт полный набор необходимых умений.
https://www.skills.google/paths/1803/course_templates/1232
Этот курс учит работать с Gemini прямо внутри BigQuery и закрывает полный набор практических навыков:
- генерация и отладка SQL-запросов с помощью Gemini
- анализ тональности текста
- автоматические суммари и выделение ключевых слов
- генерация эмбеддингов
- построение RAG-пайплайна
- мультимодальный векторный поиск
Если хочешь уверенно использовать AI-инструменты в аналитике и продуктах — этот курс даёт полный набор необходимых умений.
https://www.skills.google/paths/1803/course_templates/1232
👍3❤1💊1
⚡️ Бесплатный 7-часовой курс MIT по генеративному ИИ
MIT выложил полный интенсив по современным генмоделям — от LLM до диффузионных моделей. Разбирают архитектуры, принципы обучения, практические применения и ключевые идеи, которые лежат в основе сегодняшних систем.
Подойдёт тем, кто хочет быстро собрать цельную картину без воды.
Курс: https://www.youtube.com/playlist?list=PLXV9Vh2jYcjbnv67sXNDJiO8MWLA3ZJKR
MIT выложил полный интенсив по современным генмоделям — от LLM до диффузионных моделей. Разбирают архитектуры, принципы обучения, практические применения и ключевые идеи, которые лежат в основе сегодняшних систем.
Подойдёт тем, кто хочет быстро собрать цельную картину без воды.
Курс: https://www.youtube.com/playlist?list=PLXV9Vh2jYcjbnv67sXNDJiO8MWLA3ZJKR
❤3👍3
Какие поля из таблицы обязательно перечислять в INSERT для вставки данных?
Anonymous Quiz
14%
Конечно, все!
14%
Только те, у которых нет DEFAULT-значения
57%
Те, у которых нет DEFAULT-значения и которые не имеют атрибута auto_increment
15%
Все поля имеют негласное DEFAULT-значение, обязательных полей в SQL нет
Этот практический гайд по статистике на Python - ваш надёжный проводник в мир анализа, визуализации и интерпретации данных.
От простых описательных показателей до регрессий и временных рядов — с примерами, кодом и реальными задачами. Всё, что нужно, чтобы уверенно применять статистику на практике.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤6👍4🔥1
🌊 ETL на стероидах: стриминг данных Postgres в реальном времени на Rust 🦀
Supabase выкатили интересный open-source фреймворк - supabase/etl, который позволяет стримить данные из Postgres куда угодно в реальном времени.
Это набор простых, модульных Rust-блоков, из которых можно собрать собственный конвейер Change Data Capture (CDC). Вы получаете полный контроль над тем, как обрабатывать изменения в базе и куда их отправлять — без тяжёлых платформ и сложных конфигов.
Что делает этот фреймворк полезным:
- Прямой стриминг изменений из Postgres (CDC)
- Rust — значит скорость, надёжность и низкие накладные расходы
- Гибкие компоненты: можно строить свои конвейеры под любые нужды
- Подходит для интеграций, аналитики, событийных систем, real-time обновлений
- Легче и прозрачнее, чем классические ETL/ELT-платформы
По сути, это конструктор, из которого можно быстро собрать real-time data pipeline:
достал изменения из Postgres → преобразовал → отправил в Kafka, ClickHouse, S3, API — куда угодно.
Если вы работаете с потоковыми данными, аналитикой или микросервисами - стоит попробовать. Rust + CDC - это мощное сочетание для стабильных и быстрых пайплайнов.
https://github.com/supabase/etl
Supabase выкатили интересный open-source фреймворк - supabase/etl, который позволяет стримить данные из Postgres куда угодно в реальном времени.
Это набор простых, модульных Rust-блоков, из которых можно собрать собственный конвейер Change Data Capture (CDC). Вы получаете полный контроль над тем, как обрабатывать изменения в базе и куда их отправлять — без тяжёлых платформ и сложных конфигов.
Что делает этот фреймворк полезным:
- Прямой стриминг изменений из Postgres (CDC)
- Rust — значит скорость, надёжность и низкие накладные расходы
- Гибкие компоненты: можно строить свои конвейеры под любые нужды
- Подходит для интеграций, аналитики, событийных систем, real-time обновлений
- Легче и прозрачнее, чем классические ETL/ELT-платформы
По сути, это конструктор, из которого можно быстро собрать real-time data pipeline:
достал изменения из Postgres → преобразовал → отправил в Kafka, ClickHouse, S3, API — куда угодно.
Если вы работаете с потоковыми данными, аналитикой или микросервисами - стоит попробовать. Rust + CDC - это мощное сочетание для стабильных и быстрых пайплайнов.
https://github.com/supabase/etl
❤4👍3🔥2
🔥 Подборка полезных ресурсов для программистов.
Здесь ты найдёшь всё это - коротко, по делу и без воды.
Пока другие ищут, где “подглядеть решение”, ты уже используешь самые свежие инструменты!
AI: t.me/ai_machinelearning_big_data
Python: t.me/pythonl
Linux: t.me/linuxacademiya
Devops: t.me/DevOPSitsec
Собеседования DS: t.me/machinelearning_interview
C++ t.me/cpluspluc
Docker: t.me/DevopsDocker
Хакинг: t.me/linuxkalii
Data Science: t.me/data_analysis_ml
Javanoscript: t.me/javanoscriptv
C#: t.me/csharp_1001_notes
Java: t.me/java_library
Базы данных: t.me/sqlhub
Python собеседования: t.me/python_job_interview
Мобильная разработка: t.me/mobdevelop
Golang: t.me/Golang_google
React: t.me/react_tg
Rust: t.me/rust_code
ИИ: t.me/vistehno
PHP: t.me/phpshka
Android: t.me/android_its
Frontend: t.me/front
Big Data: t.me/bigdatai
МАТЕМАТИКА: t.me/data_math
Kubernets: t.me/kubernetc
Разработка игр: https://news.1rj.ru/str/gamedev
Haskell: t.me/haskell_tg
Физика: t.me/fizmat
💼 Папка с вакансиями: t.me/addlist/_zyy_jQ_QUsyM2Vi
Папка Go разработчика: t.me/addlist/MUtJEeJSxeY2YTFi
Папка Python разработчика: t.me/addlist/eEPya-HF6mkxMGIy
Папка ML: https://news.1rj.ru/str/addlist/2Ls-snqEeytkMDgy
Папка FRONTEND: https://news.1rj.ru/str/addlist/mzMMG3RPZhY2M2Iy
Папка Linux:https://news.1rj.ru/str/addlist/w4Doot-XBG4xNzYy
😆ИТ-Мемы: t.me/memes_prog
🇬🇧Английский: t.me/english_forprogrammers
🧠ИИ: t.me/vistehno
🎓954ГБ ОПЕНСОРС КУРСОВ: @courses
📕Ит-книги бесплатно: https://news.1rj.ru/str/addlist/BkskQciUW_FhNjEy
Сохрани себе, чтобы не потерять!
Здесь ты найдёшь всё это - коротко, по делу и без воды.
Пока другие ищут, где “подглядеть решение”, ты уже используешь самые свежие инструменты!
AI: t.me/ai_machinelearning_big_data
Python: t.me/pythonl
Linux: t.me/linuxacademiya
Devops: t.me/DevOPSitsec
Собеседования DS: t.me/machinelearning_interview
C++ t.me/cpluspluc
Docker: t.me/DevopsDocker
Хакинг: t.me/linuxkalii
Data Science: t.me/data_analysis_ml
Javanoscript: t.me/javanoscriptv
C#: t.me/csharp_1001_notes
Java: t.me/java_library
Базы данных: t.me/sqlhub
Python собеседования: t.me/python_job_interview
Мобильная разработка: t.me/mobdevelop
Golang: t.me/Golang_google
React: t.me/react_tg
Rust: t.me/rust_code
ИИ: t.me/vistehno
PHP: t.me/phpshka
Android: t.me/android_its
Frontend: t.me/front
Big Data: t.me/bigdatai
МАТЕМАТИКА: t.me/data_math
Kubernets: t.me/kubernetc
Разработка игр: https://news.1rj.ru/str/gamedev
Haskell: t.me/haskell_tg
Физика: t.me/fizmat
💼 Папка с вакансиями: t.me/addlist/_zyy_jQ_QUsyM2Vi
Папка Go разработчика: t.me/addlist/MUtJEeJSxeY2YTFi
Папка Python разработчика: t.me/addlist/eEPya-HF6mkxMGIy
Папка ML: https://news.1rj.ru/str/addlist/2Ls-snqEeytkMDgy
Папка FRONTEND: https://news.1rj.ru/str/addlist/mzMMG3RPZhY2M2Iy
Папка Linux:https://news.1rj.ru/str/addlist/w4Doot-XBG4xNzYy
😆ИТ-Мемы: t.me/memes_prog
🇬🇧Английский: t.me/english_forprogrammers
🧠ИИ: t.me/vistehno
🎓954ГБ ОПЕНСОРС КУРСОВ: @courses
📕Ит-книги бесплатно: https://news.1rj.ru/str/addlist/BkskQciUW_FhNjEy
Сохрани себе, чтобы не потерять!
👍2
Какой тип данных в PostgreSQL используется для хранения двоичных данных?
Anonymous Quiz
5%
A) TEXT
51%
B) BYTEA
34%
C) BLOB
10%
D) JSON
Конкурс для аналитиков! Требуется эксперт на продуктовый А/Б-эксперимент
Международная IT-компания Garage Eight вместе с Данилой Елистратовым собрали классный аналитический кейс, на котором каждый может прочелленджить свою экспертность.
История следующая — в крупном таксопарке «Датапарк» назревает кризис. Заказы поступают без остановки, но водителей не хватает. Чтобы спасти ситуацию, команда таксопарка запустила продуктовый эксперимент. Но ей нужна помощь крутого аналитика, чтобы разобраться, все ли правильно работает и стоит ли выкатывать новую механику на весь парк.
Задачи:
— убедиться, что сплит-система A/B-теста «Датапарка» работает верно;
— посчитать результаты теста и понять, выгодна ли новая механика;
— предложить способ определять отложенные заказы;
— объяснить все менеджменту на понятной презентации.
Призы (^-^):
1 место — Симулятор от Karpov.Courses на выбор: Симулятор А/B-тестов, Симулятор data science или Симулятор аналитика. А также бомбер Garage Eight.
2 место — Симулятор A/B-тестов от Karpov.Courses и бомбер Garage Eight.
3 место — Симулятор A/B-тестов от Karpov.Courses и бомбер Garage Eight.
4 и 5 место — Наборы мерча от Garage Eight
Прием решений: до 2 декабря
Проверка: с 3 декабря по 10 декабря
Объявление победителей: 11 декабря
> Узнай все детали и забери материалы кейса здесь:
https://news.1rj.ru/str/Garage_DataPark_bot
Реклама. ООО "Гараж". ИНН 7810671708.erid: 2W5zFJhHCfz
Международная IT-компания Garage Eight вместе с Данилой Елистратовым собрали классный аналитический кейс, на котором каждый может прочелленджить свою экспертность.
История следующая — в крупном таксопарке «Датапарк» назревает кризис. Заказы поступают без остановки, но водителей не хватает. Чтобы спасти ситуацию, команда таксопарка запустила продуктовый эксперимент. Но ей нужна помощь крутого аналитика, чтобы разобраться, все ли правильно работает и стоит ли выкатывать новую механику на весь парк.
Задачи:
— убедиться, что сплит-система A/B-теста «Датапарка» работает верно;
— посчитать результаты теста и понять, выгодна ли новая механика;
— предложить способ определять отложенные заказы;
— объяснить все менеджменту на понятной презентации.
Призы (^-^):
1 место — Симулятор от Karpov.Courses на выбор: Симулятор А/B-тестов, Симулятор data science или Симулятор аналитика. А также бомбер Garage Eight.
2 место — Симулятор A/B-тестов от Karpov.Courses и бомбер Garage Eight.
3 место — Симулятор A/B-тестов от Karpov.Courses и бомбер Garage Eight.
4 и 5 место — Наборы мерча от Garage Eight
Прием решений: до 2 декабря
Проверка: с 3 декабря по 10 декабря
Объявление победителей: 11 декабря
> Узнай все детали и забери материалы кейса здесь:
https://news.1rj.ru/str/Garage_DataPark_bot
Реклама. ООО "Гараж". ИНН 7810671708.erid: 2W5zFJhHCfz
❤1🔥1
Трюк дня. Найти медиану
Предположим, есть таблица, содержащая в столбце sales такие записи:
2, 1, 3, 8, 7, 5.
Необходимо найти медиану для данного столбца.
Решение:
В PostgreSQL используйте функцию percentile_count:
В MS SQL также используйте функцию percentile_count:
В PARTITION BY можно внести столбец, по которому группируются данные. В данном случае мы использовали 1, чтобы посчитать медиану по всем данным столбца.
В Oracle используйте функцию MEDIAN:
Однако в MySQL подобных функций нет. Поэтому медиану нужно вычислять самостоятельно.
Напомним: медиана - это число, которое находится в середине набора чисел, отсортированных по возрастанию.
Ответ: медиана = 4.
#tips
Предположим, есть таблица, содержащая в столбце sales такие записи:
2, 1, 3, 8, 7, 5.
Необходимо найти медиану для данного столбца.
Решение:
В PostgreSQL используйте функцию percentile_count:
SELECT percentile_cont (0.5) WITHIN GROUP (ORDER BY sales) FROM table;
В MS SQL также используйте функцию percentile_count:
SELECT percentile_cont (0.5) WITHIN GROUP (ORDER BY sales) OVER (PARTITION BY 1) FROM table;
В PARTITION BY можно внести столбец, по которому группируются данные. В данном случае мы использовали 1, чтобы посчитать медиану по всем данным столбца.
В Oracle используйте функцию MEDIAN:
SELECT MEDIAN (sales) OVER (PARTITION BY 1) FROM table; Однако в MySQL подобных функций нет. Поэтому медиану нужно вычислять самостоятельно.
Напомним: медиана - это число, которое находится в середине набора чисел, отсортированных по возрастанию.
/*задаем переменную row_index = -1, чтобы отсчет индекса начался с 0 */
SET @row_index := -1;
/*находим среднее двух значений в центре отсортированного набора. Охватывает те случаи, когда общее число записей четное*/
SELECT AVG (subq.sales) as median_value
FROM (
SELECT @row_index:=@row_index + 1 AS row_index, sales
FROM table
ORDER BY sales
) AS subq
WHERE subq.row_index
/*выбираем только значения в центре: одно если число записей нечетное и два если четное*/
IN (FLOOR(@row_index / 2) , CEIL(@row_index / 2));
Ответ: медиана = 4.
#tips
👍7❤2
This media is not supported in your browser
VIEW IN TELEGRAM
Хитрый SQL-трюк, о котором мало кто знает: можно резко ускорить сложные фильтры, если вместо OR использовать UNION ALL - оптимизатор часто строит намного быстрее план выполнения.
Особенно это полезно, когда каждое условие может использовать свой индекс, а OR ломает весь индексный план. Подписывайся, больше фишек каждый день !
Медленно: OR ломает индексы
SELECT *
FROM users
WHERE status = 'active'
OR created_at > NOW() - INTERVAL '30 days';
-- Быстро: каждое условие использует свой индекс
SELECT * FROM users
WHERE status = 'active'
UNION ALL
SELECT * FROM users
WHERE created_at > NOW() - INTERVAL '30 days'
AND status <> 'active';
Видео: https://www.youtube.com/shorts/Irl3Ax6UePI
Please open Telegram to view this post
VIEW IN TELEGRAM
👍15❤3🥰2
Что произойдет, если в PostgreSQL создать индекс с опцией INCLUDE и добавить туда столбец, который уже входит в ключ индекса?
Anonymous Quiz
20%
A) Ошибка создания индекса
18%
B) Столбец будет продублирован в индексe
50%
C) Столбец в INCLUDE игнорируется, так как он уже в ключе
12%
D) Индекс создастся, но с предупреждением
❤3🔥2
This media is not supported in your browser
VIEW IN TELEGRAM
🚀 ХИТРЫЙ SQL-СОВЕТ ПО ОПТИМИЗАЦИИ ЗАПРОСОВ
Одна из самых скрытых тормозящих привычек - везде писать SELECT *. Ты тащишь лишние колонки, ломаешь использование покрывающих индексов и нагружаешь память. Гораздо эффективнее выбирать только те поля, которые реально нужны в ответе, и делать по ним составной индекс. Тогда база может обслужить запрос прямо из индекса, без чтения таблицы с диска. Подписывайся, больше фишек каждый день !
Одна из самых скрытых тормозящих привычек - везде писать SELECT *. Ты тащишь лишние колонки, ломаешь использование покрывающих индексов и нагружаешь память. Гораздо эффективнее выбирать только те поля, которые реально нужны в ответе, и делать по ним составной индекс. Тогда база может обслужить запрос прямо из индекса, без чтения таблицы с диска. Подписывайся, больше фишек каждый день !
-- плохой вариант: тянем все колонки
SELECT *
FROM orders
WHERE customer_id = 42
AND status = 'PAID';
-- лучше: только нужные поля (можно сделать covering index)
SELECT id, total_amount, paid_at
FROM orders
WHERE customer_id = 42
AND status = 'PAID';
👍15❤2💊2🔥1
Что делает параметр query_cache_type в MySQL?
Anonymous Quiz
33%
Включает или отключает кэширование результатов запросов
24%
Определяет размер кэша для индексов
15%
Управляет кэшированием соединений
27%
Настраивает кэширование данных таблиц
Эта статья - не про «как написать
SELECT, а про настоящую инженерную работу: принципы нормализации, дизайн схем, практики оптимизации SQL, работа с транзакциями, и главное - как выбрать и использовать ORM так, чтобы он помогал, а не мешал.Если тебе нужен инструмент, который выдержит рост проекта и не взорвётся через год, здесь ты найдёшь системный подход, проверенные шаблоны и практические примеры, которым уже доверяют зрелые инженерные команды.
Готовы? Тогда начинаем строить архитектуру, которую не стыдно масштабировать.
https://uproger.com/sql-bolshoj-gajd-kak-pravilno-vybrat-orm/
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥4❤2👍2😁1
🔐 Postgresus - self-hosted инструмент для резервного копирования и мониторинга PostgreSQL базы данных
🔥 Возможности:
- создание бекапов по расписанию для PostgreSQL 13-18;
- уведомления в Telegram, Slack, Discord, если бекап сломался или база недоступна;
- хранение бекапов локально, в S3 или Google Drive;
- health check базы данных раз в минуту;
- Apache 2.0 лицензия (полностью открытый);
Запуск через Docker:
📌 GitHub
🔥 Возможности:
- создание бекапов по расписанию для PostgreSQL 13-18;
- уведомления в Telegram, Slack, Discord, если бекап сломался или база недоступна;
- хранение бекапов локально, в S3 или Google Drive;
- health check базы данных раз в минуту;
- Apache 2.0 лицензия (полностью открытый);
Запуск через Docker:
docker run -d
--name postgresus
-p 4005:4005
-v ./postgresus-data:/postgresus-data
--restart unless-stopped
rostislavdugin/postgresus:latest
📌 GitHub
🔥7👍4❤2
This media is not supported in your browser
VIEW IN TELEGRAM
Когда нужно взять по одному самому свежему событию на пользователя, не делай вложенные подзапросы с MAX и лишние JOIN, используй оконную функцию ROW_NUMBER по разделу и упорядочиванию, так запрос будет понятнее и часто быстрее на реальных данных.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13🔥3🥱1