36043
По всем вопросам- @workakkk @itchannels_telegram - 🔥лучшие ит-каналы @ai_machinelearning_big_data - Machine learning @pythonl - Python @pythonlbooks- python книги📚 @datascienceiot - ml книги📚 РКН: https://vk.cc/cIi9vo
Твои скиллы получат буст после IT Talk by Sber в Омске 🚀
Иного просто не может быть — за один вечер вы прокачаете навыки и узнаете:
▪️ Что такое E2E-система, зачем она нужна и как помогает решить проблемы разработки на практике?
▪️ Как вайб-кодинг помогает в проработке задач, проверке гипотез и концепций?
▪️ Как написать агента на Java и какой стек использовать?
Подробная программа и регистрация по ссылке. Встречаемся 20 ноября в 18:00 в кампусе «Школы 21» по адресу: ул. Ленина, д. 26 Б.
# ⚠️ Расследователи сомневается в AI-сделках Oracle на $300 млрд — и это тревожный сигнал
Сейчас мы видим, как крупнейшие IT-компании (гиперскейлеры) заключают многолетние контракты на искусственный интеллект на сотни миллиардов долларов.
Но никто ещё не проверял, насколько всё это реально окупается. Это - эксперимент на деньгах, технологиях и времени.
💸 Если хотя бы часть этих сделок не сработает, задержится или не принесёт ожидаемой прибыли, удар почувствует вся AI-индустрия - от чипов до облаков.
🧱 Да, AI-бум реален. Но его финансовый фундамент пока как мокрый цемент — выглядит крепко, но легко может просесть.
🎯 Если у Oracle получится - они войдут в список самых влиятельных компаний мира.
❗ Если нет — вся отрасль поймёт, насколько эта гонка на самом деле рискованна и нестабильна.
> 📊 Пузыри не лопаются, когда в них перестают верить.
> Они лопаются, когда кто-то наконец проверяет цифры.
@sqlhub
Antares SQL Client
Современный, быстрый и ориентированный на продуктивность SQL-клиент с акцентом на пользовательский опыт (UX).
Текущие ключевые функции:
- Подключение к нескольким базам данных одновременно.
- Управление базами данных (добавление/редактирование/удаление).
- Полное управление таблицами, включая индексы и внешние ключи.
- Управление представлениями, триггерами, хранимыми процедурами, функциями и планировщиками (добавление/редактирование/удаление).
- Современная и удобная система вкладок; держите открытыми все необходимые вкладки в вашем рабочем пространстве.
- Заполнение тестовых данных в таблицах для генерации большого объема данных.
- Подсказки и автозаполнение запросов.
- История запросов: поиск по последним 1000 запросам.
- Сохранение запросов, заметок или задач.
- Поддержка SSH-туннелей.
- Режим ручного выполнения транзакций.
- Импорт и экспорт дампов баз данных.
- Настраиваемые горячие клавиши.
- Темная и светлая тема.
- Темы редактора.
https://github.com/antares-sql/antares
💡 Продвинутый SQL-совет: используйте partial indexes как «селективный ускоритель», но не только для WHERE — ещё и для JOIN-ов.
Большинство разработчиков делают частичные индексы так:
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;
CREATE INDEX idx_logs_active ON logs(user_id)
WHERE is_archived = false;
AIJ Deep Dive: специальный очный трек для AI-профи в рамках международной конференции AI Journey!
Среда для профессионального роста, общение с экспертами мировой AI-индустрии и другими AI-профи — всё это ждёт вас на треке AIJ Deep Dive. В программе — только главные аспекты работы с AI:
Это событие точно нельзя пропустить
1️⃣20 ноября — день Бизнеса: разберём успешные кейсы внедрения, оценим эффективность и практические результаты.
2️⃣ 21 ноября — день Науки: проведём глубокий анализ IT-решений, прорывных научных исследований, R&D-разработок и передовых методик.
⚡Открытая трансляция главного зала HighLoad++ 2025!
🖐️ Подключайтесь и слушайте доклады от спикеров MTС Web Services (MWS), VK Tech, Яндекса, Т-Банка, СберТеха и других компаний.
HighLoad++ 2025 — это конференция, которая определяет будущее высоконагруженных систем.
📍6 и 7 ноября все желающие могут бесплатно посмотреть онлайн-трансляцию главного зала. Открытую трансляцию мы организовали совместно с генеральным партнером конференции — МТС Web Services (MWS).
МТС Web Services (MWS) — бигтех-компания, предоставляющая облачные и Al-сервисы, а также платформенные решения под задачи бизнеса: от работы с данными до разработки продуктов и оптимизации бизнес-процессов.
Как всегда, в главном зале — топовые эксперты и самые актуальные темы.
✅ Подробности и расписание на сайте
🖥 Шардирование в базах данных: обзор концепции
Шардирование или шардинг - это принцип проектирования базы данных, при котором данные разбиваются на части и размещаются на разных шардах.
Интерактивный лонгрид по шардированию баз данных.
В нем разобрано все - от принципов работы шардов и причин, зачем это вообще нужно, до тонкостей проектирования и типовых ошибок.
Каждый раздел сопровождается интерактивными диаграммами, с которыми можно экспериментировать прямо в статье.
Отличный материал, чтобы прокачать понимание распределённых БД на выходных 💡
Статья: https://planetscale.com/blog/database-sharding
Видео: https://www.youtube.com/watch?v=R2ML2jLs3_U
🤖 Авито готовит к запуску собственного ИИ-ассистента «Ави»
Технологическая платформа Авито подала заявку на регистрацию товарного знака для своего интеллектуального ассистента — «Ави», сообщает «Коммерсант».
🧩 Что умеет
«Ави» построен на базе большой языковой модели и умеет вести живой диалог с пользователем. Он не просто отвечает на вопросы — ассистент помогает разобраться в деталях покупки, уточняет цели и критерии выбора, советует подходящие предложения и объясняет различия между ними. Фактически, это персональный консультант внутри платформы, который знает рынок лучше любого менеджера.
💡 Почему это важно
Крупные компании одна за другой внедряют собственные ИИ-решения — это уже не эксперимент, а стратегия. Такие ассистенты позволяют:
• собирать контекст из разговоров с пользователями,
• повышать вовлеченность и лояльность,
• увеличивать продажи.
Эксперты оценивают вложения в проект примерно в 500 млн рублей. Но для Авито эти траты — часть планомерного развития: компания уже заявляла о планах инвестировать в развитие генеративного ИИ около 12 млрд рублей и к 2028 году заработать более 21 млрд на новых технологиях.
Собственные модели компании уже можно оценить в деле — Авито выпустила две нейросети:
• A-Vibe — текстовая LLM,
• A-Vision — мультимодальная модель, работающая с текстом и изображениями.
Их успех говорит сам за себя: A-Vibe за первую неделю собрала 1400+ скачиваний и попала в топ трендовых моделей на Hugging Face.
🚀 Что дальше
Сейчас «Ави» проходит тесты в разных категориях площадки. В планах — уже в следующем году запустить универсальную версию, которая сможет работать во всех вертикалях Авито.
⚡️ Вышел pgbalancer 1.0 - интеллектуальный балансировщик нагрузки для PostgreSQL
Представлен первый стабильный релиз pgbalancer 1.0 — балансировщика нагрузки для PostgreSQL, построенного на основе pgpool-II с существенными доработками.
Проект позиционируется как решение с элементами адаптивной маршрутизации запросов, управляемое через REST API и поддерживающее MQTT для потоковой передачи событий в реальном времени.
Ключевые особенности:
• Управление пулом соединений и распределение нагрузки между репликами PostgreSQL;
•Поддержка HTTP/REST для конфигурации и мониторинга;
• Интеграция с MQTT для стриминга метрик и событий;
• Реализация на языке C с сохранением производительности оригинального pgpool-II;
• Распространяется под открытой лицензией PostgreSQL.
https://www.pgelephant.com/pgbalancer
Для многих разработчиков моменты, когда они пишут код не по работе, а для профессионального вызова, становятся ключевыми в их росте. Именно таким вызовом может стать Yandex Cup 2025 — чемпионат, где встречаются сильнейшие разработчики, и один из треков которого посвящён машинному обучению.
Здесь реальные задачи, близкие к тому, с чем сталкиваются инженеры в продакшне: ограничения по ресурсам, шумные данные, необходимость найти баланс между скоростью и качеством.
Участие — способ не просто проверить свои навыки, но и заявить о себе в профессиональном сообществе. Лучшие участники получают приглашения на упрощённый отбор в команды Яндекса.
🚀 Современный ORM и генератор SQL для C++20
sqlgen — это типобезопасный ORM и генератор SQL, вдохновленный SQLAlchemy и Diesel. Он обеспечивает компоновку запросов с проверкой типов на этапе компиляции и защитой от SQL-инъекций, что делает его идеальным для создания надежных ETL-пайплайнов.
🚀Основные моменты:
- 🔒 Компиляция с проверкой схем таблиц и запросов
- 🛡️ Защита от SQL-инъекций с параметризованными запросами
- 🔄 Удобный интерфейс для составления сложных запросов
- 🚀 Высокая производительность с пакетными операциями
- 📦 Поддержка PostgreSQL и SQLite
📌 GitHub: https://github.com/getml/sqlgen
#cpp
⚡️ Pytest совет: экономим время на тестах с большими данными
Если в тестах используется тяжёлый датасет, важно правильно выбрать scope для фикстуры.
❌ По умолчанию (`scope="function"`) данные будут загружаться заново для каждого теста. Это тратит ресурсы и замедляет выполнение.
✅ С scope="session" датасет загружается один раз и переиспользуется во всех тестах. Это ускоряет процесс и снижает нагрузку.
Используйте session scope для больших и неизменяемых данных, чтобы тесты работали быстрее и стабильнее.
🔥 no-code база данных, которая сама превращает SQL в Airtable-стиль интерфейс
Что умеет:
- Подключается к MySQL, Postgres, SQLite, MSSQL и сразу показывает данные в виде удобных таблиц
- Делает представления: таблицы, календари, канбан, формы, Гантт
- Генерирует готовые REST и GraphQL API прямо поверх базы
- Делится видами: публично или под паролем, поддерживает загрузку файлов и картинок
- Настраивает роли и доступ до уровня отдельного столбца
Плюс интеграции со Slack, Discord, мессенджерами, почтой и десятками сервисов.
По сути — Airtable, но напрямую поверх твоей базы.
https://github.com/nocodb/nocodb
Твой шанс прокачаться в ИТ, получить карьерный буст и побороться за призовой фонд 10 250 000 рублей 💰 Успей зарегистрироваться до 20 октября.
МТС приглашает на True Tech Champ — всероссийский чемпионат по программированию. Соревнование будет проходить в двух треках.
Трек 1. Алгоритмический. Индивидуальный зачет [призовой фонд 2 750 000 рублей]
Реши задачи, которые помогут прокачаться в работе с алгоритмами и структурами данных. Похожие задания встречаются на собеседованиях в МТС и других крупных компаниях. До 240 лучших участников попадут в финал и сразятся в лайв-кодинге.
Трек 2. Программирование роботов. Командный формат [призовой фонд 7 500 000 рублей]
Проведи робота по виртуальному лабиринту, затем управляй им дистанционно на офлайн-полигоне, а в финале — пройди испытания на реальной площадке и выбей соперников с платформы. Организаторы отправят командам финалистов по одному роботу Waveshare Cobra Flex для кастомизации. После соревнований они останутся у участников в качестве подарка.
📍 Зрелищный шоу-финал с ИИ-технологиями, кодерскими челленджами и выступлениями международных и российских спикеров пройдет 21 ноября в МТС Live Холл.
🎁 Регистрация участников до 20 октября на сайте.
💡 SQL trick: уникальные значения прямо в агрегатах
Иногда нужно посчитать уникальные значения по каждому пользователю.
Мало кто знает, что для этого есть COUNT(DISTINCT ...).
SELECT
customer_id,
COUNT(DISTINCT product_id) AS unique_products
FROM orders
GROUP BY customer_id;
COUNT(), но и с SUM(DISTINCT ...) или AVG(DISTINCT ...).
🔥 Подборка полезных ресурсов для программистов.
Здесь ты найдёшь всё это - коротко, по делу и без воды.
Пока другие ищут, где “подглядеть решение”, ты уже используешь самые свежие инструменты!
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
Javascript: t.me/javascriptv
C#: t.me/csharp_1001_notes
Java: t.me/java_library
Базы данных: t.me/databases_tg
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
Разработка игр: /channel/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: /channel/addlist/2Ls-snqEeytkMDgy
Папка FRONTEND: /channel/addlist/mzMMG3RPZhY2M2Iy
Папка Linux:/channel/addlist/w4Doot-XBG4xNzYy
😆ИТ-Мемы: t.me/memes_prog
🇬🇧Английский: t.me/english_forprogrammers
🧠ИИ: t.me/vistehno
🎓954ГБ ОПЕНСОРС КУРСОВ: @courses
📕Ит-книги бесплатно: /channel/addlist/BkskQciUW_FhNjEy
Сохрани себе, чтобы не потерять!
🖥 PYTHON: ХИТРЫЙ ТРЮК С SQL
Если вы работаете с большими таблицами в SQL через Python, и не хотите тянуть всё в память, используйте ленивую подгрузку данных с генерацией чанков. Это особенно полезно, если вы делаете агрегации, фильтрации или сохраняете результат в файл — можно обрабатывать данные частями, не загружая весь датасет сразу.
Удобно, быстро и экономит память. Работает даже с миллионами строк.
import pandas as pd
from sqlalchemy import create_engine
# подключение к базе данных (пример для PostgreSQL)
engine = create_engine("postgresql://user:password@localhost:5432/dbname")
# читаем по 10000 строк за раз
chunk_iter = pd.read_sql("SELECT * FROM big_table", engine, chunksize=10000)
# обработка: сохраняем отфильтрованные строки в файл
with open("filtered_output.csv", "w", encoding="utf-8") as f:
for i, chunk in enumerate(chunk_iter):
filtered = chunk[chunk["amount"] > 1000]
filtered.to_csv(f, index=False, header=(i == 0))
За 2,5 часа прокачаем маркетинг с нейросетями
Технари, проходите мимо — здесь эфир для ребят из маркетинга.
25 ноября приходите на онлайн-интенсив по AI. Вас ждет:
📈 Кейс-стади. COFIX, CDEK, Звук и Gulliver расскажут, как оптимизировали маркетинг с ML и LLM. С результатами в цифрах!
Например, Cofix ускорил обработку клиентских отзывов в 7000 раз. А Gulliver удвоил CTR товарных карточек на маркетплейсах.
👨🏫 Воркшоп по промптингу. Эксперты в прямом эфире помогут сегментировать клиентов, персонализировать рассылки и рекламу с ChatGPT.
📅 25 ноября, 11:00–13:30 мск
💻 Онлайн, бесплатно
Зарегистрироваться
erid: 2W5zFJPvCvk
🌊📊 pg_lake: Postgres для Iceberg и хранилищ данныхpg_lake позволяет интегрировать файлы Iceberg и хранилищ данных в PostgreSQL, превращая его в полноценную lakehouse-систему. Поддерживает транзакции и быстрые запросы к таблицам Iceberg, а также работу с сырыми данными из облачных хранилищ, таких как S3.
🚀Основные моменты:
- Создание и модификация таблиц Iceberg с полными транзакционными гарантиями.
- Запрос и импорт данных из файлов в форматах Parquet, CSV, JSON.
- Экспорт результатов запросов обратно в облачные хранилища.
- Поддержка геопространственных форматов через GDAL.
- Использование встроенного типа данных для полуструктурированных данных.
📌 GitHub: https://github.com/Snowflake-Labs/pg_lake
#postgresql
🧠 UnisonDB - экспериментальная база, которая убирает боль синхронизации в распределённых системах
Главная идея простая, но мощная:
все узлы хранят одно и то же состояние, и оно автоматически синхронизируется без конфликтов — даже оффлайн.
Как это работает
- Используются CRDT — структуры данных, которые сами разрешают конфликты
- Вся система построена как event log (каждое изменение — событие)
- Данные сначала пишутся локально, потом догоняют сеть
- Нет «главного сервера» — каждый узел может быть источником истины
Что это даёт
- Мгновенные локальные обновления (даже без интернета)
- Автоматическая консистентность без ручных merge
- Идеально для приложений, которые должны работать оффлайн и в real-time
Где это полезно
- мобильные и edge-приложения
- коллаборативные редакторы
- распределённые системы без единого центра
- автономные агенты и IoT
Почему это интересно
Это не просто база данных - это попытка пересобрать модель хранения данных под эпоху распределённого ПО, где сеть ненадёжна, а приложение должно всегда работать.
https://github.com/ankur-anand/unisondb
#databases #crdt #distributedSystems #eventSourcing #edgecomputing #backend #systemdesign
🖥 Инструмент для мониторинга активности PostgreSQL
Следит за запросами, блокировками, использованием памяти и CPU - помогает мгновенно понять, что происходит с базой в реальном времени.
💻 Устанавливается одной командой:sudo apt install pg-activity
Работает как локально, так и по сети.
Если запускать от postgres или root, открывается полная статистика - системные процессы, временные файлы и всё, что нужно для анализа нагрузки.
https://github.com/dalibo/pg_activity
🖥 Полный гайд: защита от SQL-инъекций для разработчиков
SQL-инъекции остаются одной из самых частых и опасных уязвимостей в веб-приложениях. Ошибка в одном запросе — и злоумышленник получает доступ к базе данных, паролям и пользовательским данным.
В этом материале — полный практический разбор:
как именно происходят SQL-инъекции, какие ошибки разработчиков к ним приводят, как их распознать в коде и главное — как защититься.
Разберём реальные примеры на Python, PHP и Go, посмотрим, как атакующий «взламывает» запрос, и научимся писать безопасный код с параметризованными запросами и ORM.
Это не теория, а руководство, которое поможет понять уязвимость изнутри и навсегда закрыть её в своих проектах.
👉 Читать гайд
Не пропустите! 05 ноября в 20:00 пройдет бесплатный урок по теме “PostgreSQL для администраторов и разработчиков” по теме “Работа с json в PostgreSQL: давно не просто текст.” Запись: https://otus.pw/9EAE/
JSON в PostgreSQL — это не временное хак-решение, это инструмент, который меняет подход к хранению данных. Он позволяет хранить гибкие, меняющиеся структуры прямо в таблице и при этом использовать мощь SQL: фильтрацию, индексы и транзакции.
На уроке вы увидите, как использовать JSON/JSONB так, чтобы не терять скорость и предсказуемость, но объединять удобство JSON-формата с производительностью и гарантиями PostgreSQL.
Рассмотрим:
- работу с типами данных JSON и JSONB в PostgreSQL.
- изучим операторы и функции для работы с JSON-документами. - определим применение индексов и функций для повышения производительности при работе с JSONB.
Какие результаты на выходе:
- научитесь выбирать между реляционной моделью и использованием JSON в конкретном кейсе;
- получите готовые примеры и шаблоны запросов для использования в проектах.
Записывайтесь на вебинар и получит спец. предложение на обучение:
https://otus.pw/9EAE/?erid=2W5zFGUaPy2
Реклама. ООО "ОТУС ОНЛАЙН-ОБРАЗОВАНИЕ". ИНН 9705100963.
🪄 Открытая альтернатива Firebase — на стероидах PostgreSQL
Платформа, которая даёт всё, чтобы собрать современное веб-, мобильное или AI-приложение — без проприетарных SDK и боли.
Что внутри:
⚙️ Хостинг Postgres с realtime-синхронизацией
🧩 Автогенерация REST и GraphQL API
🔐 Аутентификация и авторизация через JWT
⚡ Edge-функции и серверные триггеры
📦 Хранилище файлов с поддержкой S3
🧠 AI-инструменты: векторные индексы, эмбеддинги, семантический поиск
🪶 Всё open source и доступно для self-host.
По сути это Firebase-опыт, но построенный на «взрослых» open-source технологиях:
PostgreSQL, Elixir, GoTrue, PostgREST, pg_graphql.
Платформа, где можно запустить идею, вырастить продукт и не упереться в чьи-то закрытые лимиты.
#Postgres #OpenSource #Backend #AI #GraphQL #Realtime #FirebaseAlternative
https://github.com/supabase/supabase
🚀 Удобный инструмент для миграции схем PostgreSQL
pgschema — это CLI утилита, которая упрощает процесс миграции схем в PostgreSQL, используя декларативный подход, похожий на Terraform. Она позволяет создавать, редактировать и применять изменения к схемам, обеспечивая контроль над миграциями без необходимости в дополнительных таблицах.
🚀 Основные моменты:
- Декларативное управление схемами PostgreSQL
- Поддержка всех основных объектов и версий PostgreSQL
- Генерация плана миграции с предварительным просмотром изменений
- Прямое взаимодействие с файлами схем и базой данных без временных БД
📌 GitHub: https://github.com/pgschema/pgschema
#go
🖥 pg_flo — библиотека для работы с PostgreSQL, которая упрощает создание и выполнение потоковых операций в базе данных! Она также предоставляет удобный интерфейс для выполнения операций с данными, что может быть полезно для задач, требующих последовательной обработки данных.
🔐 Лицензия: Apache-2.0
🖥 Github
@sqlhub
🔍 Marker — инструмент от Datalab.to, который быстро и точно превращает документы в Markdown + JSON
Что умеет Marker:
- Поддержка PDF, изображений, PPTX, DOCX, XLSX, HTML, EPUB и др.
- Форматирует таблицы, формы, уравнения, математические выражения, ссылки, кодовые блоки.
- Извлекает изображения из документов.
- Убирает колонтитулы, заголовки, другие артефакты форматирования.
- Есть бета-версия для “структурированного извлечения” на основе схемы JSON.
- Можно включить LLM-модуль, чтобы повысить точность в сложных местах (например, объединение таблиц, корректное форматирование).
Преимущества:
- Быстрота + точность по сравнению с конкурентами (Mathpix, Llamaparse и др.).
- Работает и без LLM, но с флагом --use_llm становится ещё лучше.
- Можно запускать локально, на серверах, GPU / CPU, использовать параллельную обработку.
Ограничения и нюансы:
- Сложные макеты и вложенные таблицы / формы ещё не всегда обрабатываются идеально.
- Иногда требуется OCR, особенно если PDF плохо “разложен” на текст.
Кому полезно:
- Тем, кто работает с научными статьями, отчётами, бухгалтерскими документами, презентациями и хочет автоматизировать преобразование в читаемый формат.
- Для RAG-pipelines, документации и любых задач, где надо извлечь структуру и контент.
https://github.com/datalab-to/marker
🧩 SQL полезный приём
Нужно выбрать из таблицы записи с максимальным или минимальным значением по группе?
Вместо вложенных подзапросов удобно использовать оконные функции.
Пример: найти для каждого пользователя его последний заказ.
WITH ranked AS (
SELECT
user_id,
order_id,
order_date,
ROW_NUMBER() OVER (PARTITION BY user_id ORDER BY order_date DESC) AS rn
FROM orders
)
SELECT user_id, order_id, order_date
FROM ranked
WHERE rn = 1;
🖥 Гайд по PostgreSQL для продвинутых разработчиков
PostgreSQL – одна из самых мощных СУБД с открытым исходным кодом. Этот гайд подробно охватывает ключевые аспекты PostgreSQL: от внутренней архитектуры до приёмов оптимизации. Мы рассмотрим администрирование, производительность, расширения, инструменты, а также сравним популярные ORM для Python и Go. В конце приведён список продвинутых вопросов, часто встречающихся на собеседованиях.
🟠Гайд
@sqlhub
Нужен один «топ-элемент» на группу без оконных функций и лишних джойнов?
В PostgreSQL есть недооценённый приём: DISTINCT ON. Он берёт первую строку в каждой группе по указанным полям, какую именно, ты задаёшь через ORDER BY.
Так за один проход можно выбрать, например, последний заказ клиента, самую дорогую позицию в категории или актуальную запись по состоянию. Важно: в ORDER BY сначала идут поля из DISTINCT ON, а следом — критерий «топа» (например, created_at DESC).
Для скорости добавь составной индекс в том же порядке (ключи группировки → поле сортировки).
-- Возьмём по 1 строке на группу (g1, g2), выбирая «лучшую» по metric DESC
SELECT DISTINCT ON (g1, g2) *
FROM some_table
ORDER BY g1, g2, metric DESC;
-- Пример: последний заказ каждого пользователя
SELECT DISTINCT ON (o.user_id)
o.user_id, o.id AS order_id, o.created_at, o.total
FROM orders o
ORDER BY o.user_id, o.created_at DESC;
-- Рекомендуемый индекс для скорости (соответствует ORDER BY)
CREATE INDEX ON orders (user_id, created_at DESC);
-- Ещё пример: самая дорогая товарная позиция в категории
SELECT DISTINCT ON (p.category_id)
p.category_id, p.id, p.price
FROM products p
ORDER BY p.category_id, p.price DESC;
-- Индекс под этот запрос
CREATE INDEX ON products (category_id, price DESC);