Библиотека баз данных – Telegram
Библиотека баз данных
10.5K subscribers
196 photos
7 videos
27 files
215 links
Самая большая библиотека бесплатных книг по SQL

По всем вопросам- @haarrp

@ai_machinelearning_big_data - machine learning

@pythonl - Python

@itchannels_telegram - 🔥 best it channels

@ArtificialIntelligencedl - AI

РКН:  № 5037640984
Download Telegram
📘 Как PostgreSQL научился масштабироваться без боли

Менеджер буферов в PostgreSQL отвечает за кэширование 8KB-страниц диска в общей памяти фиксированного размера. Для поиска используется хеш-таблица (через BufferTag → buffer ID), а для удаления страниц — clock-sweep алгоритм.

Первые версии были предельно простыми — с глобальной блокировкой, что быстро приводило к узким местам под нагрузкой. За 30 лет система эволюционировала:

от единой глобальной блокировки

к блокировкам на каждый буфер и партицию

и, наконец, к атомарным операциям, обеспечивающим почти lock-free доступ к структурам памяти.

Это позволило резко снизить конфликтность и повысить масштабируемость в OLTP-нагрузках, сохранив устойчивость при работе с общей памятью.

Философия дизайна PostgreSQL — минимальное время удержания блокировок, абстракция аппаратных различий через атомики и постоянная оптимизация реальных узких мест по результатам профилирования.

Отличный блог-пост с хронологией ключевых вех и ссылками на важные коммиты за эти годы — по ссылке 👇

Подробности
5❤‍🔥2
Какой SQL оператор отвечает за создание таблицы?
Anonymous Quiz
3%
ALTER
1%
INSERT
1%
DROP
92%
CREATE
3%
MAKE
0%
DELEGATE
🙉9😱4😁1💅1
Media is too big
VIEW IN TELEGRAM
🔥 Hugging Face снова выкатили полезные материалы.

Вышел бесплатный плейбук о том, как изнутри строят SOTA-модели.

Без общих слов - только реальные решения и нюансы, которые обычно скрыты внутри исследовательских команд.

Это полноценный мастеркласс на 214 страниц для тех, кто хочет понимать, как устроены современные LLM.

Что внутри:
• Логика построения модели: зачем → что → как
• Как разработчики берут модель и по частям включают/выключают компоненты (или меняют их)
• Архитектура: ключевые выборы и trade-offs
• Искусство подбора и очистки данных
• Как проходит обучение моделей
• Пост-тренинг и RLHF в 2025
• Инфраструктура больших моделей

По первым страницам - уровень деталей как в Ultra-scale playbook.

Ссылка
: https://huggingface.co/spaces/HuggingFaceTB/smol-training-playbook#designing-the-model-architecture

Видео: https://www.youtube.com/watch?v=LGzO-Mn0DJQ

#AI #LLM #MachineLearning #HuggingFace

@sql_lib - библиотека МЛ и ИИ книг
3🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
🚨 SQL Никогда НЕ ДЕЛАЙ ТАК #sql

НИКОГДА НЕ ЛОМАЙ ИНДЕКСЫ ФУНКЦИЯМИ: не оборачивай индексируемые поля в функции внутри WHERE.

Как только ты пишешь LOWER(), CAST(), COALESCE() или любые вычисления по колонке — индекс перестаёт работать, и запрос падает в полное сканирование таблицы.

Это одна из самых тихих причин, почему запросы внезапно превращаются в тормоза.

Вместо этого приводи значения заранее или используй функциональные индексы.


Плохо: индекс по email НЕ используется
SELECT *
FROM users
WHERE LOWER(email) = 'user@example.com';

-- Хорошо: нормализуем значение заранее
SELECT *
FROM users
WHERE email = 'user@example.com';

-- Или создаём функциональный индекс (PostgreSQL)
CREATE INDEX idx_users_email_lower ON users (LOWER(email));


https://www.youtube.com/shorts/AyiAslOeJFA
🔥64👍3👎1🤔1
🖥 SQL большой гайд. Как правильно выбрать ORM

Эта статья - не про «как написать SELECT, а про настоящую инженерную работу: принципы нормализации, дизайн схем, практики оптимизации SQL, работа с транзакциями, и главное - как выбрать и использовать ORM так, чтобы он помогал, а не мешал.

Если тебе нужен инструмент, который выдержит рост проекта и не взорвётся через год, здесь ты найдёшь системный подход, проверенные шаблоны и практические примеры, которым уже доверяют зрелые инженерные команды.

Готовы? Тогда начинаем строить архитектуру, которую не стыдно масштабировать.

https://uproger.com/sql-bolshoj-gajd-kak-pravilno-vybrat-orm/
Please open Telegram to view this post
VIEW IN TELEGRAM
3
Производительные или и выгодные базы данных в облаке

Безопасные, масштабируемые и отказоустойчивые базы данных — одна из ключевых потребностей любого проекта. Именно такие предлагает Selectel. СУБД под разные запросы: от универсальной PostgreSQL до поисковой и аналитической БД Opensearch

Новые клиенты сейчас могут получить до 30 000 бонусов на использование облачных баз данных Selectel. Провайдер гарантирует:

🔹Высокую производительность. Выбирайте оптимальную конфигурацию кластера на базе мощного железа и локальных NVMe-дисков.
🔹Надежность. Автоматические бесплатные бэкапы с восстановлением вплоть до секунды — на стороне Selectel. А создать отказоустойчивый кластер можно всего от двух нод и сэкономить до 33%.
🔹Гибкое масштабирование. При росте нагрузки можно поменять конфигурацию облачного сервера и количество реплик без простоя.

Успейте зарегистрироваться и оставить заявку на участие в акции, чтобы протестировать сервис бесплатно: https://slc.tl/y7zta

Реклама. АО "Селектел". erid:2W5zFH92NVE
1
🖥 SQL СОВЕТ

Когда нужно взять по одному самому свежему событию на пользователя, не делай вложенные подзапросы с MAX и лишние JOIN, используй оконную функцию ROW_NUMBER по разделу и упорядочиванию, так запрос будет понятнее и часто быстрее на реальных данных.


SELECT *
FROM (
SELECT
user_id,
event_type,
created_at,
ROW_NUMBER() OVER (
PARTITION BY user_id
ORDER BY created_at DESC
) AS rn
FROM events
) t
WHERE rn = 1;

-- Для каждого user_id вернется только самое последнее событие
Please open Telegram to view this post
VIEW IN TELEGRAM
👍83🤨2
🚀 SQL-совет:

Используйте computed (вычисляемые) колонки и индексы по ним, когда ваши запросы постоянно фильтруют или сортируют по функции.


Плохо:
WHERE LOWER(email) = 'user@mail.com'

Это ломает индекс — оптимизатор не может его использовать.

Лучше:
ALTER TABLE users
ADD email_lower AS LOWER(email) STORED;

CREATE INDEX idx_users_email_lower ON users(email_lower);

Теперь:
WHERE email_lower = 'user@mail.com'


Запросы становятся мгновенно быстрее, а индекс используется эффективно.

Очень немногие разработчики знают и применяют этот трюк, но он спасает производительность на реальных системах.
👍62🔥2
🚀 Новый продвинутый планировщик заданий для PostgreSQL - лучше, чем cron

Если устал от cron и временных триггеров, обрати внимание на pg_timetable:

Сильный: гибкий, надёжный, с богатым функционалом
Легко настраивается, понятен и прозрачен
Позволяет:
• запускать SQL-задачи по расписанию
• отслеживать их статус и history
• обеспечивать graceful restart и защиту от сбоев

Идеален для рабочих баз, сложной логики задач и критичных приложений.

📦 Репозиторий: https://github.com/cybertec-postgresql/pg_timetable

#golang #postgresql #devops #golang
4👍2