SQL Portal | Базы Данных
Присоединяйтесь к нашему каналу и погрузитесь в мир баз данных Связь: @devmangx РКН: https://clck.ru/3H4Wo3
إظهار المزيد📈 نظرة تحليلية على قناة تيليجرام SQL Portal | Базы Данных
تُعد قناة SQL Portal | Базы Данных (@sqlportal) لاعباً نشطاً. يضم المجتمع حالياً 14 181 مشتركاً، محتلاً المرتبة 9 103 في فئة التكنولوجيات والتطبيقات والمرتبة 47 059 في منطقة روسيا.
📊 مؤشرات الجمهور والحراك
منذ تأسيسه في невідомо، حقق المشروع نمواً سريعاً وجمع 14 181 مشتركاً.
بحسب آخر البيانات بتاريخ 05 يونيو, 2026، تحافظ القناة على نشاط مستقر. خلال آخر 30 يوماً تغيّر عدد الأعضاء بمقدار -130، وفي آخر 24 ساعة بمقدار 0، مع بقاء الوصول العام مرتفعاً.
- حالة التحقق: غير موثّقة
- معدل التفاعل (ER): يبلغ متوسط تفاعل الجمهور 8.90%. وخلال أول 24 ساعة من النشر يحصد المحتوى عادةً 5.08% من ردود الفعل نسبةً إلى إجمالي المشتركين.
- وصول المنشورات: يحصل كل منشور على متوسط 1 263 مشاهدة. وخلال اليوم الأول يجمع عادةً 721 مشاهدة.
- التفاعلات والاستجابة: يتفاعل الجمهور بانتظام؛ متوسط التفاعلات لكل منشور يبلغ 4.
- الاهتمامات الموضوعية: يركز المحتوى على مواضيع رئيسية مثل строка, sql, индекс, postgres, колонка.
📝 الوصف وسياسة المحتوى
يصف المؤلف القناة بأنها مساحة للتعبير عن الآراء الذاتية:
“Присоединяйтесь к нашему каналу и погрузитесь в мир баз данных
Связь: @devmangx
РКН: https://clck.ru/3H4Wo3”
بفضل وتيرة التحديث المرتفعة (أحدث البيانات بتاريخ 06 يونيو, 2026) تحافظ القناة على حداثتها ومستوى وصول مرتفع. وتُظهر التحليلات تفاعلاً نشطاً من الجمهور، ما يجعلها نقطة تأثير مهمة ضمن فئة التكنولوجيات والتطبيقات.
جاري تحميل البيانات...
| التاريخ | نمو المشتركين | الإشارات | القنوات | |
| 06 يونيو | 0 | |||
| 05 يونيو | +2 | |||
| 04 يونيو | +3 | |||
| 03 يونيو | +1 | |||
| 02 يونيو | +2 | |||
| 01 يونيو | +2 |
| 2 | У Claude Code довольно элегантная структура проекта: одна папка .claude/, в которой живёт всё, что связано с агентом.
👉 @SQLPortal | 722 |
| 3 | 🚀 SudoTeach запустили новый курс — Продвинутый SQL!
SQL — это не только
SELECT * FROM users.
На работе и собеседованиях SQL — это не только простые запросы, а индексы, транзакции, JOIN’ы, оконные функции, CTE и проектирование БД.
В курсе собрали всё, что нужно, чтобы уверенно работать с базами данных в реальных проектах.
Что внутри:
• продвинутая выборка данных;
• JOIN, подзапросы, агрегации и группировки;
• оконные функции, CTE и рекурсия;
• DML, DDL, нормализация и проектирование таблиц;
• индексы, транзакции, VIEW и MATERIALIZED VIEW;
• сравнение PostgreSQL, MySQL и SQLite;
• обзор NoSQL, MongoDB и Redis;
• финальный проект: спроектируете БД с нуля и напишете запросы к ней.
🎓 8 разделов, 24 урока, практические задания, помощь преподавателя и доступ навсегда.
Прямо сейчас можно забрать курс со скидкой 40%:
🔗 https://sudoteach.com/course/sql-pro | 738 |
| 4 | Большинство AI-кодинг-агентов знают SQL.
Намного меньше из них понимают базы данных.
PlanetScale выложили Database Skills. Это набор skills для AI-агентов, которые работают с MySQL, Postgres, Vitess и Neki.
Вместо одного огромного промпта:
→ отдельный skill для MySQL
→ отдельный skill для Postgres
→ отдельный skill для Vitess
→ отдельный skill для Neki
Что умеет:
• проектирование схем
• индексы и оптимизация запросов
• транзакции и блокировки
• MVCC, VACUUM и WAL в Postgres
• шардинг через Vitess
• Online DDL и VReplication
• диагностика медленных запросов
Установка:
npx skills add planetscale/database-skills
или в Cursor:
/add-plugin database-skills
Мне нравится сама идея.
Сейчас многие используют агентов как очень умный автокомплит. А вот заставить агента понимать, почему этот индекс плохой, почему VACUUM отстаёт или почему шардирование сломает запросы через полгода, уже гораздо интереснее.
Open source. MIT License. GitHub доступен всем.
👉 @SQLPortal | 833 |
| 5 | Нормализация БД относится к тем темам, которые изучает почти каждый разработчик.
Но со временем многие забывают разницу между:
✅ 1NF
✅ 2NF
✅ 3NF
✅ BCNF
✅ 4NF
Хорошо нормализованная база данных:
• уменьшает дублирование данных
• повышает целостность данных
• предотвращает аномалии при вставке, обновлении и удалении
• упрощает поддержку и развитие системы
Краткая шпаргалка по нормальным формам: | 884 |
| 6 | Supabase и Firebase забрали все ваши деньги?
Butterbase только что открыл исходный код. Полностью open-source бэкенд с нативной поддержкой AI:
- Postgres с RLS
- Auth и OAuth
- Хранилище
- Functions
- AI Gateway
- MCP Server (чтобы ваши агенты могли использовать бэкенд как полноценный набор инструментов)
То есть больше не нужно вручную копировать и вставлять код, чтобы Claude, Cursor или ваши агенты могли взаимодействовать с базой данных.
Всё доступно через инструменты.
Можно развернуть самостоятельно или использовать их managed-версию.
РЕПО ↓
https://github.com/butterbase-ai/butterbase
👉 @SQLPortal | 939 |
| 7 | Устали постоянно получать:
CREATE ...
ORA-01031: insufficient privileges
при создании объектов?
В Oracle AI Database 26ai достаточно выдать одну роль:
GRANT db_developer_role TO ...
После этого пользователь сможет создавать все стандартные объекты базы данных.
👉 @SQLPortal | 969 |
| 8 | Dolt — это SQL-база данных с полноценным Git-подобным контролем версий для данных.
Можно делать ветки, мержить изменения, форкать и клонировать не только код, но и сами данные.
• Подключение через MySQL-протокол, чтение и запись версионируемых данных обычным SQL
• Импорт CSV, коммиты изменений, push, pull и merge через привычные Git-команды
• Публикация баз на DoltHub или самостоятельный хостинг через DoltLab
• Используется как слой памяти для AI-агентов в multi-agent и multi-machine workflow
Если вам когда-нибудь хотелось сделать git checkout, git diff или git merge для базы данных, Dolt решает именно эту задачу.
Посмотреть проект можно здесь: https://github.com/dolthub/dolt
👉 @SQLPortal | 1 031 |
| 9 | Я сократил расход токенов в Claude Code вдвое с помощью одного файла.
Замерял результат в течение недели.
Секрет прост: научить Claude выбирать модель в зависимости от задачи.
Haiku для массовых механических задач.
Sonnet для исследований и анализа.
Opus только там, где действительно требуется сложное рассуждение.
До этого токены тратились без разбора на любые задачи.
После настройки результат остался тем же, а расход снизился примерно вдвое.
Схема состоит из трёх частей.
1. Блок делегирования задач
Вы задаёте правило, по которому Claude создаёт субагентов и выбирает самую дешёвую подходящую модель:
→ Haiku: рутинные задачи без необходимости принимать решения
→ Sonnet: исследования, изучение кодовой базы, анализ и обобщение информации
→ Opus: только для реального планирования и сложных компромиссов
Два важных ограничения:
• Haiku никогда не создаёт собственных субагентов. Если это понадобилось, задача была плохо декомпозирована.
• Максимальная глубина вложенности — два уровня (родитель → субагент → ещё один уровень).
Если субагенту требуется более сильная модель, он возвращает задачу родителю, а не повышает уровень самостоятельно.
2. Блок предпочтительных инструментов
Вы учите Claude сначала выбирать самые дешёвые инструменты:
→ WebFetch для публичных веб-страниц
→ agent-browser CLI для динамических страниц и сайтов с авторизацией (примерно на 82% меньше токенов по сравнению с инструментами на основе скриншотов)
→ Конвертация PDF в текст вместо использования инструмента Read
Если Claude постоянно повторяет один и тот же шаблон действий, вы просите его оформить этот процесс как переиспользуемый инструмент.
3. Две строки в settings.json
"CLAUDE_CODE_DISABLE_1M_CONTEXT": "1"
Не позволяет загружать огромные контекстные окна, которые часто не нужны.
"CLAUDE_AUTOCOMPACT_PCT_OVERRIDE": "80"
Запускает автоматическое сжатие контекста при заполнении на 80%, а не после полного заполнения.
Только эти две настройки экономят токены в каждой сессии.
Вся настройка занимает около двух минут.
А экономия начинает накапливаться с каждой следующей задачей.
👉 @SQLPortal | 1 012 |
| 10 | Скиллы AI-агентов представляют собой набор инструкций в Markdown, которые объясняют, как выполнять определённую задачу.
Kris Rice создал библиотеку из более чем 100 скиллов для работы с Oracle AI Database, включающую практические примеры, лучшие практики и распространённые ошибки.
Получить их можно здесь: https://github.com/oracle/skills
👉 @SQLPortal | 1 071 |
| 11 | Обновить одну таблицу, используя значения из другой таблицы через прямое JOIN-соединение в 26ai:
UPDATE <target_tab>
SET <target_col> = <source_col>
FROM <source_tab>
WHERE <join_condition>
Такие JOIN-соединения также можно использовать в операторах DELETE.
👉 @SQLPortal | 1 088 |
| 12 | Surya OCR выглядит очень мощно для открытой OCR-модели.
Что выделяется:
→ менее 1 млрд параметров
→ поддержка 91 языка
→ до 5 страниц в секунду на RTX 5090
→ работает на CPU, GPU и Apple MPS
→ 83.3% на бенчмарке olmOCR, один из лучших результатов среди моделей до 3B параметров
Surya OCR относится к классу Document Intelligence-моделей. Она не просто извлекает текст с изображения, но также умеет работать со структурой документов: PDF, сканами, таблицами, многостраничными документами и сложной вёрсткой.
Подходит для задач:
• OCR документов и PDF
• оцифровки книг и сканов
• RAG-пайплайнов
• обработки счетов и форм
• извлечения данных из таблиц
• подготовки датасетов для LLM
100% open source.
👉 @SQLPortal | 1 120 |
| 13 | Многие до сих пор сравнивают PostgreSQL и MySQL так, будто разница между ними сводится к синтаксису SQL и производительности в бенчмарках.
На самом деле различия начинаются гораздо глубже, на уровне архитектуры.
PostgreSQL представляет собой единый интегрированный движок. Данные хранятся в heap-таблицах, версии строк поддерживаются через MVCC прямо внутри таблиц, а для журналирования используется единый WAL (Write-Ahead Log).
MySQL (если говорить про InnoDB) устроен иначе. SQL-слой отделён от движка хранения, данные хранятся в кластеризованном B-дереве, история изменений строк выносится в undo-логи, а сама система опирается сразу на несколько журналов: Undo Log, Redo Log и Binlog.
Из-за этого базы по-разному ведут себя при обновлении данных, восстановлении после сбоев, репликации и обслуживании больших нагрузок.
Именно поэтому вопрос «что быстрее: PostgreSQL или MySQL?» обычно не имеет смысла без контекста.
Это не просто две разные СУБД. Это две разные архитектурные философии, которые решают похожие задачи разными способами.
👉 @SQLPortal | 1 200 |
| 14 | 9 типов баз данных:
1) Реляционные (Relational)
↳ Хранят структурированные данные в таблицах с заранее определённой схемой и поддержкой SQL-запросов.
2) Ключ-значение (Key-Value)
↳ Хранят данные в виде пар «ключ-значение» для максимально быстрых операций чтения и кэширования.
3) Документные (Document)
↳ Хранят данные в виде JSON-подобных документов с гибкой вложенной структурой.
4) Ширококолонковые (Wide-Column)
↳ Хранят данные в гибких семействах колонок для масштабируемых распределённых нагрузок.
5) Временных рядов (Time-Series)
↳ Хранят данные с временными метками для метрик, логов, событий и телеметрии в реальном времени.
6) Графовые (Graph)
↳ Хранят связи между сущностями, позволяя эффективно выполнять запросы по связанным данным.
7) Векторные (Vector)
↳ Хранят эмбеддинги для поиска по сходству и AI-ориентированного поиска информации.
8) Колоночные (Columnar)
↳ Хранят данные по колонкам, а не по строкам, что ускоряет аналитические запросы.
9) Поисковые (Search)
↳ Хранят индексированный текст и структурированные данные для быстрого полнотекстового поиска и ранжирования результатов.
Большинство современных систем используют сразу несколько типов баз данных.
По мере того как системы становятся всё более ориентированными на работу в реальном времени и AI, потребность в инфраструктуре для временных рядов заметно выросла.
👉 @SQLPortal | 1 122 |
| 15 | Когда в psql выполняется запрос и вы нажимаете Ctrl+C, клиент отправляет серверу запрос на отмену выполнения. Но как это работает?
Сервер не может использовать уже существующее соединение, потому что оно занято обработкой текущего запроса. Поэтому Postgres использует второе, временное соединение, которое работает по принципу «отправил и забыл», аналогично SIGINT. Этот механизм намеренно сделан максимально простым, потому что отмена должна срабатывать даже тогда, когда всё остальное зависло.
Все драйверы, клиенты и инструменты, поддерживающие отмену запросов, используют один и тот же механизм.
PID, секретный ключ и код запроса на отмену
Во время инициализации соединения, после завершения аутентификации, сервер отправляет сообщение BackendKeyData, содержащее:
pid — идентификатор процесса (PID) backend-процесса, обслуживающего ваше соединение;
secret — случайное 32-битное целое число, генерируемое при запуске сессии.
Согласованный код запроса на отмену — фиксированное значение: 0x04d2162e, или PG_PROTOCOL(1234,5678) в исходном коде Postgres.
Чтобы отменить запрос, клиент открывает новое соединение с портом Postgres и отправляет сообщение CancelRequest, содержащее PID, секретный ключ и код запроса на отмену.
Что делает сервер?
- Распознаёт сообщение как CancelRequest, а не как стартовое сообщение (StartupMessage);
- Находит backend-процесс с указанным PID;
- Проверяет совпадение секретного ключа;
- Отправляет сигнал SIGINT этому backend-процессу;
- Закрывает соединение для отмены, не отправляя никакого ответа.
- Backend-процесс получает SIGINT, что запускает механизм обработки прерываний в Postgres. После этого в
исходное соединение возвращается ошибка:
ErrorResponse: ERROR: canceling statement due to user request
ReadyForQuery
Что именно происходит внутри Postgres после получения запросом сигнала SIGINT — тема уже не для выходного чтения. Об этом поговорим в одном из постов на след недели.
👉 @SQLPortal | 1 090 |
| 16 | На Stepik вышла программа «Фундамент DevOps»
Это комплексная программа из 4 практических курсов по ключевым технологиям современного DevOps: Linux, Git, Docker и Kubernetes.
Вы последовательно пройдёте путь от работы в Linux и Git до контейнеризации приложений и управления ими в Kubernetes.
Что вы изучите:
• уверенную работу в Linux и терминале
• Git и контроль версий в реальных проектах
• Docker и контейнеризацию приложений
• Kubernetes и оркестрацию контейнеров
• основы сетей, безопасности и хранения данных
• автоматизацию задач и диагностику инфраструктуры
... и многому другому
Все знания закрепляются на практике с помощью заданий с автопроверкой.
Материал подаётся понятным языком, шаг за шагом, с большим количеством примеров, схем и демонстраций. После прохождения вы получите сертификат, который можно добавить в резюме.
Отдельно курсы стоят 16 600 ₽, но в составе программы доступны всего за 7 990 ₽: открыть на Stepik | 789 |
| 17 | Брух, визуализируй SQL-базы данных прямо внутри VS Code 🤯
👉 @SQLPortal | 1 209 |
| 18 | Supabase выпустила бесплатный курс по изучению PostgreSQL с нуля и пошагово.
✓ Более 5 часов контента в 39 видео
✓ Запросы, JOIN, JSON, индексы и создание таблиц
✓ Всё объясняется постепенно и на практических примерах
https://databaseschool.com/series/intro-to-postgres/videos/203
👉 @SQLPortal | 1 268 |
| 19 | 9 HTTP-методов
1. GET
Читает данные без их изменения.
Безопасный и идемпотентный — повторный запрос возвращает тот же результат.
2. POST
Создаёт новые ресурсы.
Не является идемпотентным — повтор может привести к дублированию данных.
3.PUT
Создаёт или полностью заменяет ресурс по известному URL.
Идемпотентный, идеально подходит для полных обновлений.
4. PATCH
Используется для частичных обновлений, изменяя только нужные поля.
5. DELETE
Удаляет ресурс.
Идемпотентный — повторное удаление не приведёт к ошибке. Часто используется в API для удаления записей.
6. HEAD
Как GET, но возвращает только заголовки (без тела ответа).
Удобен для проверки наличия ресурса или метаданных.
7. OPTIONS
Показывает доступные HTTP-методы для ресурса.
Часто используется для CORS preflight-проверок.
8. CONNECT
Устанавливает туннель — в основном используется для HTTPS через прокси.
9. TRACE
Возвращает полученный сервером запрос "как есть".
Нужен в основном для отладки
👉 @SQLPortal | 1 350 |
| 20 | Решение многих распространённых проблем с производительностью БД вообще не требует изменений в самой базе данных. База — это лишь один компонент гораздо более крупной системы. В эту систему входят поведение пользователей, UX-дизайн, изменения в коде и меняющиеся сценарии использования.
Ниже — несколько проблем, которые выглядят как проблемы производительности БД, но на деле ими не являются.
Пользователи бесконечно жмут refresh
Когда пользователю кажется, что страница не загружается, он по привычке нажимает reload. Каждый reload повторно запускает те же самые запросы. Мы часто видели это на тяжёлых отчётах. Когда нагрузка была низкой, отчёты генерировались мгновенно, но с ростом числа клиентов, объёма данных и сложности логики запросы стали выполняться дольше, плюс выросло время форматирования на уровне приложения. Если кнопка “run report” никак не показывает, что процесс уже идёт, пользователи начинают нажимать её повторно или обновлять страницу.
Признаки:
• резкий рост calls в pg_stat_statements без соответствующего роста трафика
• всплеск запросов, привязанный к загрузке конкретной страницы
• пользователи жалуются, что страница «сломалась» или «грузится вечность»
Решение: состояния загрузки с отключением кнопок, optimistic UI, асинхронная генерация отчётов или хотя бы обычный spinner, который показывает, что приложение работает. Ни одна база не выдержит фронтенд, позволяющий пользователям DDOS’ить её вручную.
N+1 запросы из ORM
Вы загружаете список из 100 заказов. ORM затем выполняет ещё 100 отдельных запросов, чтобы получить клиента для каждого заказа. Потом дашборд показывает общее число заказов для каждого клиента — и это ещё 100 запросов. В итоге вместо одного запроса страница делает 201.
Каждый запрос занимает 2 мс. Но 201 × 2 мс = 404 мс последовательных round-trip’ов к БД на каждый запрос страницы. При 500 запросах в минуту одна страница генерирует тысячи лишних запросов в минуту, которых вообще не должно существовать.
Решение: свести всё к одному запросу через JOIN и агрегации. Некоторые ORM умеют это автоматически, в других придётся писать SQL вручную.
Агрессивный polling чаще, чем меняются данные
Разработчик добавляет setInterval(() => fetchStatus(), 1000) для проверки статуса заказа. Код уезжает в production. 50 000 активных сессий, опрашивающих сервер раз в секунду = 50 000 запросов в секунду к таблице, которая обновляется всего раз в минуту.
Решение: WebSocket, Server-Sent Events или хотя бы существенно увеличить интервал polling’а.
Запрос медленный только для нового сценария использования
Отчётный запрос выполняется 800 мс. Финансовый отдел запускает его один раз в день в 9 утра. Потом кто-то добавляет этот запрос в widget на дашборде с автообновлением каждые 30 секунд. Теперь каждый пользователь с открытым дашбордом запускает запрос на 800 мс по 120 раз в час.
Сам запрос медленнее не стал. Изменился паттерн доступа.
Решение: кешировать отчёт через materialized view, вынести его в background job или убрать auto-refresh.
Иногда проблема — в дизайне системы, а не в БД
Не раз бывало так, что запись экрана пользователя с воспроизведением ошибки помогала понять проблему быстрее, чем любые логи.
👉 @SQLPortal | 1 225 |
متاح الآن! بحث تيليغرام 2025 — أهم رؤى العام 
