uz
Feedback
SQL Portal | Базы Данных

SQL Portal | Базы Данных

Kanalga Telegram’da o‘tish

Присоединяйтесь к нашему каналу и погрузитесь в мир баз данных Связь: @devmangx РКН: https://clck.ru/3H4Wo3

Ko'proq ko'rsatish

📈 Telegram kanali SQL Portal | Базы Данных analitikasi

SQL Portal | Базы Данных (@sqlportal) kanali faol ishtirokchi. Hozirda hamjamiyat 14 162 obunachidan iborat bo'lib, Texnologiyalar & Aralashmalar toifasida 9 112-o'rinni va Rossiya mintaqasida 47 134-o'rinni egallagan.

📊 Auditoriya ko‘rsatkichlari va dinamika

невідомо sanasidan buyon loyiha tez o‘sib, 14 162 obunachiga ega bo‘ldi.

08 Iyun, 2026 dagi oxirgi ma’lumotlarga ko‘ra kanal barqaror faollikka ega. Oxirgi 30 kunda obunachilar soni -135 ga, so‘nggi 24 soatda esa -8 ga o‘zgardi va umumiy qamrov yuqori darajada qolmoqda.

  • Tasdiqlash holati: Tasdiqlanmagan
  • Jalb etish (ER): Auditoriya o‘rtacha 8.88% darajada jalb etiladi. Nashrdan keyingi dastlabki 24 soatda kontent odatda umumiy obunachilar sonining 5.23% ini tashkil etuvchi reaksiyalarni to‘playdi.
  • Post qamrovi: Har bir post o‘rtacha 1 258 marta ko‘riladi; birinchi sutkada odatda 741 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 09 Iyun, 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.

14 162
Obunachilar
-824 soatlar
-217 kunlar
-13530 kunlar
Obunachilarni jalb qilish
Iyun '26
Iyun '26
+12
2 kanalda
May '26
+45
1 kanalda
Get PRO
Aprel '26
+33
0 kanalda
Get PRO
Mart '26
+116
1 kanalda
Get PRO
Fevral '26
+77
0 kanalda
Get PRO
Yanvar '26
+65
0 kanalda
Get PRO
Dekabr '25
+327
8 kanalda
Get PRO
Noyabr '25
+1 089
318 kanalda
Get PRO
Oktabr '25
+76
0 kanalda
Get PRO
Sentabr '25
+76
0 kanalda
Get PRO
Avgust '25
+100
0 kanalda
Get PRO
Iyul '25
+1 881
267 kanalda
Get PRO
Iyun '25
+489
1 kanalda
Get PRO
May '25
+287
1 kanalda
Get PRO
Aprel '25
+939
1 kanalda
Get PRO
Mart '25
+994
0 kanalda
Get PRO
Fevral '25
+750
0 kanalda
Get PRO
Yanvar '25
+1 163
0 kanalda
Get PRO
Dekabr '24
+1 753
405 kanalda
Get PRO
Noyabr '24
+1 137
170 kanalda
Get PRO
Oktabr '24
+1 973
286 kanalda
Get PRO
Sentabr '24
+1 504
282 kanalda
Get PRO
Avgust '24
+3 285
234 kanalda
Sana
Obunachilarni jalb qilish
Esdaliklar
Kanallar
09 Iyun0
08 Iyun+1
07 Iyun+1
06 Iyun0
05 Iyun+2
04 Iyun+3
03 Iyun+1
02 Iyun+2
01 Iyun+2
Kanal postlari
«Но ведь запрос был быстрым на dev и staging!» Какие признаки говорят о том, что запрос работает быстро локально, но в produc
+2
«Но ведь запрос был быстрым на dev и staging!» Какие признаки говорят о том, что запрос работает быстро локально, но в production потребует отдельного внимания к производительности? Есть две точки, после которых простой запрос начинает заметно замедляться: Сортировка перестаёт помещаться в память. Сканирование таблицы начинает читать данные с диска. Примеры ниже показаны на небольших стендах с ограниченными ресурсами. В крупных системах картина будет такой же, только с гораздо большим количеством строк. Простой запрос:
SELECT user_id, event_type, created_at
FROM events
WHERE user_id = 1
ORDER BY created_at DESC
Без индекса PostgreSQL приходится сканировать всю таблицу, чтобы найти события пользователя, даже если нужных строк совсем немного. (Небольшая оговорка: если для пользователя нет ни одной строки, PostgreSQL может решить вообще не сканировать таблицу, используя статистику по таблице и колонкам.) Фаза 1. Всё помещается в память Таблица содержит 10 000 строк. Для user_id = 1 найдено 5 000 событий. work_mem = 1MB. Что видно ((фото1): Sort Method: quicksort Memory: 427kB Все 5 000 строк были отсортированы прямо в RAM. Rows Removed by Filter: 5000 PostgreSQL всё равно прочитал остальные 5 000 строк и отбросил их. Buffers: shared hit=74 Все страницы уже находились в памяти (shared_buffers). Фаза 2. Сортировка начинает писать на диск Теперь в таблице 200 000 строк. У пользователя уже 100 000 событий. work_mem всё ещё равен 1 MB. Что изменилось (2): Sort Method: external merge Disk: 3352kB Сортировка больше не помещается в память и начинает использовать временные файлы. temp read=836 written=843 PostgreSQL записал 843 временные страницы на диск и затем прочитал их обратно во время merge-фазы. Rows Removed by Filter: 100000 Ещё 100 тысяч строк были прочитаны только для того, чтобы потом их выбросить. Фаза 3. Таблица перестаёт помещаться в буферный кеш Всего уже 600 000 строк. Из них 100 000 принадлежат нужному пользователю, остальные 500 000 — другим пользователям. PostgreSQL всё равно вынужден читать их. Размер таблицы становится больше shared_buffers. (3 фото) Планировщик запустил 2 параллельных воркера. Сканирование и сортировка были распределены между 3 процессами, поэтому каждый сортировал примерно по 33 000 строк вместо 100 000. Но основные проблемы остались: shared read=3049 Таблица перестала помещаться в буферный кеш. Более 3 000 страниц пришлось читать с диска. Rows Removed by Filter: 166667 × 3 Было прочитано и выброшено около 500 тысяч строк. Все три сортировки всё равно использовали external merge Параллелизм уменьшил объём работы на каждый процесс, но не убрал запись на диск. Решение зависит от конкретного приложения. Самый очевидный вариант:
CREATE INDEX idx_events_user_created_at
ON events (user_id, created_at DESC);
Такой индекс позволяет резко сократить объём сортировки и избежать полного сканирования таблицы. Но индекс далеко не единственный вариант. В зависимости от нагрузки могут помочь: - кэширование на уровне приложения; - materialized views; - партиционирование таблиц; - изменение модели хранения данных. Главный вывод простой: Если в EXPLAIN ANALYZE появляются: external merge temp read / temp written большие значения Rows Removed by Filter shared read то запрос, который отлично работал на dev-базе с 10 тысячами строк, уже начинает показывать, что будет происходить в production на миллионах записей. 👉 @SQLPortal

2
Появился /no-mistakes. По многочисленным просьбам автор вынес один из самых полезных инструментов своего агентного пайплайна+1
Появился /no-mistakes. По многочисленным просьбам автор вынес один из самых полезных инструментов своего агентного пайплайна в отдельный skill для Claude Code, Codex и других агентных сред. После того как агент внёс изменения, достаточно выполнить: /no-mistakes Дальше инструмент автоматически проверит изменения и поможет найти проблемы до коммита. По словам автора, код, сгенерированный ИИ, даже лучшими моделями, пока нельзя безоговорочно принимать и мержить без тщательной проверки. Его собственная статистика: 68% изменений содержали проблемы эти проблемы могли попасть в основную ветку, если бы их не обнаружил no-mistakes Раньше инструмент запускался только через: git push no-mistakes Теперь доступен и как skill. Исходный код открыт и распространяется бесплатно: https://github.com/kunchenguid/no-mistakes Для настройки в репозитории: no-mistakes init 👉 @SQLPortal
623
3
Начиная с Oracle 21c, массивы PL/SQL можно инициализировать через конструкторы с циклом FOR. array := arr_type ( FOR i IN ...
Начиная с Oracle 21c, массивы PL/SQL можно инициализировать через конструкторы с циклом FOR. array := arr_type ( FOR i IN ... ) Такие конструкторы позволяют перебирать: значения — IN x .. y результат курсора — IN ( SELECT ... ) Для задания собственных индексов можно использовать необязательное выражение INDEX. 👉 @SQLPortal
672
4
Лето начинается: водные развлечения, гриль на острове и новые маршруты в бутик-отеле «Заонежье» Для гостей бутик-отеля «Заоне+9
Лето начинается: водные развлечения, гриль на острове и новые маршруты в бутик-отеле «Заонежье» Для гостей бутик-отеля «Заонежье» к новому сезону подготовлены лесные трассы для первых заездов на новых квадроциклах — они позволяют исследовать дикие уголки карельской тайги и скалистые берега озер. Велопрогулки по дорогам Заонежья стали еще комфортнее благодаря электробайкам, которые этой весной пополнили велопарк отеля. В мае, в отеле открылся сезон водных развлечений: гостям доступны сапы, каяки и весельные лодки. В этом году пользование ими - комплементарное для всех гостей. Также появились новые маршруты для катеров по заливам Онежского озера. Ресторан «Руна» представляет летнюю серию гриль-сетов, которые можно приготовить самостоятельно на одном из необитаемых островов или устроить барбекю на лужайке у дома. В меню — овощные и рыбные сеты, а также мясное ассорти. Бутик-отель «Заонежье» приглашает к активному отдыху среди озер и северной природы Карелии.
732
5
Новый бесплатный курс от Anthropic! Agent Skills: пошагово и с нуля ✓ Создание навыков (Skills) и лучшие практики ✓ Отличия от Tools и MCP ✓ Для Claude Code и Visual Studio Code 2 часа контента и 10 видеоуроков → deeplearning.ai/short-courses/agent-skills-with-anthropic/ 👉 @SQLPortal
843
6
Тебе точно понравится: Этот инструмент, который преобразует запросы на естественном языке в SQL-запросы То есть пишешь ему, например: все книги которые взяли студенты 2 курса за последнюю неделю И он вам выдаёт SELECT * FROM ... и тд. Очень удобный инструмент для тех, кто не знаком с SQL, но нуждается в работе с базами данных, пользуйтесь 📸 ⛓ Ознакомиться: тут 👉 @SQLPortal
885
7
Чем больше пользуюсь Claude Code, тем сильнее кажется, что главный навык теперь не кодинг. А управление агентами. У некоторых
Чем больше пользуюсь Claude Code, тем сильнее кажется, что главный навык теперь не кодинг. А управление агентами. У некоторых workflow выглядит примерно так: Одна задача автоматически разбивается между несколькими агентами. • один накидывает идеи • один пишет технический план • один кодит • один делает ревью • один ищет проблемы и пропущенные кейсы Всё складывается в markdown, чтобы не потерять контекст. Да, получается медленнее. Да, приходится ждать. Но качество обычно выше, потому что каждый агент делает только одну работу. А настоящий буст начинается с Git Worktrees. Вместо одной сессии Claude Code можно держать несколько параллельных. Одна пилит новую фичу. Вторая разбирается с багом. Третья пишет тесты. Четвёртая занимается рефакторингом. В итоге начинаешь думать не в стиле «как написать этот код», а в стиле «как распределить работу между агентами и не потерять контроль над результатом». Похоже, это и есть новый engineering skill. 👉 @SQLPortal
844
8
Любимый паттерн для “последняя запись на группу” в Postgres — DISTINCT ON. Да, он Postgres-specific. Нет, он не из SQL Standa
Любимый паттерн для “последняя запись на группу” в Postgres — DISTINCT ON. Да, он Postgres-specific. Нет, он не из SQL Standard. Зато для этой задачи он читается почти идеально. Есть таблица заказов: CREATE TABLE orders ( id bigint PRIMARY KEY, customer_id int, status text, created_at timestamptz ); Старый классический вариант: SELECT o.* FROM orders o INNER JOIN ( SELECT customer_id, MAX(created_at) AS latest FROM orders GROUP BY customer_id ) latest ON o.customer_id = latest.customer_id AND o.created_at = latest.latest; Работает, но есть нюансы. Таблица читается два раза: сначала ищем MAX(created_at) по каждому customer_id, потом джойнимся обратно за полной строкой. И ещё хуже: если у одного клиента два заказа с одинаковым created_at, запрос может вернуть две строки. Нужен tie-breaker. В Postgres проще так: SELECT DISTINCT ON (customer_id) customer_id, status, created_at FROM orders ORDER BY customer_id, created_at DESC; DISTINCT ON (customer_id) оставляет первую строку для каждого клиента после сортировки. То есть ORDER BY customer_id, created_at DESC сначала кладёт свежий заказ клиента наверх, а DISTINCT ON забирает его. Чтобы это реально летало, добавляем индекс: CREATE INDEX ON orders (customer_id, created_at DESC); Теперь Postgres может идти по уже отсортированному индексу и не делать отдельную сортировку. На небольшом тесте с 100k строк и 20k customer_id получилось так: Без индекса: • MAX + self-join: 32.92ms • DISTINCT ON: 34.75ms • ROW_NUMBER(): 38.68ms С индексом (customer_id, created_at DESC): • DISTINCT ON: 15.99ms • ROW_NUMBER(): 25.36ms • MAX + self-join: 38.01ms Главный вывод: для “одна последняя строка на группу” в Postgres я первым беру DISTINCT ON. Если нужно не одну строку, а top N строк на группу, тогда уже ROW_NUMBER(): SELECT customer_id, status, created_at FROM ( SELECT *, ROW_NUMBER() OVER ( PARTITION BY customer_id ORDER BY created_at DESC ) AS rn FROM orders ) ranked WHERE rn = 1; DISTINCT ON — для простого “последний на группу”. Window functions — когда нужна гибкость. 👉 @SQLPortal
743
9
Только начинаете знакомство с Oracle AI Database? Anders Swanson показывает, с чего начать. Что входит в руководство: • запуск бесплатной базы данных в Docker • установка необходимых инструментов для разработки: расширения SQL Developer для VS Code и CLI-интерфейса SQLcl • подборка бесплатных материалов для изучения Oracle AI Database и экосистемы Oracle Подойдёт тем, кто хочет быстро поднять локальное окружение и начать работать с Oracle без лишней настройки. 👉 @SQLPortal
874
10
У Claude Code довольно элегантная структура проекта: одна папка .claude/, в которой живёт всё, что связано с агентом. 👉 @SQL
У Claude Code довольно элегантная структура проекта: одна папка .claude/, в которой живёт всё, что связано с агентом. 👉 @SQLPortal
976
11
🚀 SudoTeach запустили новый курс — Продвинутый SQL! SQL — это не только SELECT * FROM users. На работе и собеседованиях SQL
🚀 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
961
12
Большинство 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
1 005
13
Нормализация БД относится к тем темам, которые изучает почти каждый разработчик. Но со временем многие забывают разницу между
Нормализация БД относится к тем темам, которые изучает почти каждый разработчик. Но со временем многие забывают разницу между: ✅ 1NF ✅ 2NF ✅ 3NF ✅ BCNF ✅ 4NF Хорошо нормализованная база данных: • уменьшает дублирование данных • повышает целостность данных • предотвращает аномалии при вставке, обновлении и удалении • упрощает поддержку и развитие системы Краткая шпаргалка по нормальным формам:
1 032
14
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
1 123
15
Устали постоянно получать: CREATE ... ORA-01031: insufficient privileges при создании объектов? В Oracle AI Database 26ai дос
Устали постоянно получать: CREATE ... ORA-01031: insufficient privileges при создании объектов? В Oracle AI Database 26ai достаточно выдать одну роль: GRANT db_developer_role TO ... После этого пользователь сможет создавать все стандартные объекты базы данных. 👉 @SQLPortal
1 107
16
Dolt — это SQL-база данных с полноценным Git-подобным контролем версий для данных. Можно делать ветки, мержить изменения, фор
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 262
17
Я сократил расход токенов в Claude Code вдвое с помощью одного файла. Замерял результат в течение недели. Секрет прост: научи
Я сократил расход токенов в 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 188
18
Скиллы AI-агентов представляют собой набор инструкций в Markdown, которые объясняют, как выполнять определённую задачу. Kris Rice создал библиотеку из более чем 100 скиллов для работы с Oracle AI Database, включающую практические примеры, лучшие практики и распространённые ошибки. Получить их можно здесь: https://github.com/oracle/skills 👉 @SQLPortal
1 258
19
Обновить одну таблицу, используя значения из другой таблицы через прямое JOIN-соединение в 26ai: UPDATE SET
Обновить одну таблицу, используя значения из другой таблицы через прямое JOIN-соединение в 26ai: UPDATE <target_tab> SET <target_col> = <source_col> FROM <source_tab> WHERE <join_condition> Такие JOIN-соединения также можно использовать в операторах DELETE. 👉 @SQLPortal
1 287
20
Surya OCR выглядит очень мощно для открытой OCR-модели. Что выделяется: → менее 1 млрд параметров → поддержка 91 языка → до 5
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 329