SQL и Анализ данных
12.3K subscribers
598 photos
52 videos
3 files
629 links
Базы данных и всё, что с ними связано!

Сотрудничество: @haarrp

№ 5820974151
加入频道
💻 Оптимизация JOIN

В статье рассматриваются различные методы оптимизации операций JOIN в PostgreSQL для повышения производительности запросов.

Автор объясняет, как работают типы соединений Nested Loop Join, Hash Join и Merge Join, и предоставляет рекомендации по выбору оптимального метода в зависимости от структуры данных и доступных ресурсов.

Читать статью

tags: #статья #postgresql

➡️ SQL Community | Чат
Please open Telegram to view this post
VIEW IN TELEGRAM
3🔥2👍1
💻 Работа с колонками типа JSON

В статье рассматривается использование PostgreSQL для работы с данными в формате JSON, включая выполнение запросов и обновление информации.

Автор демонстрирует, как применять разные функции для извлечения, обновления и удаления данных из колонок типа JSON/JSONB, а также объясняет, как создавать индексы для улучшения производительности.

Читать статью

tags: #статья #postgresql

➡️ SQL Community | Чат
Please open Telegram to view this post
VIEW IN TELEGRAM
👍42
💻 Когда нужен VACUUM FULL в PostgreSQL?

Мы уже выяснили, что обычный VACUUM не уменьшает размер таблицы, а лишь помечает «мёртвые» строки доступными для перезаписи.

Если таблица раздулась и больше не используется, нужен VACUUM FULL.

Сегодня разберём, как он работает, почему блокирует таблицу и какие есть альтернативы.

🔖 Предыдущая часть — КЛИК


70 — выпускаем следующую часть

tags: #обучение #postgresql

SQL Community | Чат
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
44🔥4👍1
💻 Bloom-фильтры: скрытый инструмент для оптимизации запросов

При сложных выборках с условиями по нескольким столбцам B-Tree индексы могут работать неэффективно.

В таких случаях на помощь приходит Bloom-индексация — метод, позволяющий ускорить поиск за счет компактного хранения информации.

В статье разбирается, как работают Bloom-фильтры, когда их стоит применять и как правильно настроить их в PostgreSQL.

Что вы узнаете в статье?
▶️ В чем особенности Bloom-индексов и чем они отличаются от B-Tree?

▶️ Как использовать расширение bloom в PostgreSQL?

▶️ В каких сценариях такой индекс дает наибольший прирост производительности?


Этот инструмент поможет ускорить работу базы данных и снизить нагрузку на систему при сложных запросах.

Читать статью

tags: #статья #postgresql

SQL Community | Чат
Please open Telegram to view this post
VIEW IN TELEGRAM
👍211
💻 Быстрее пули: как найти счастье с PostgreSQL

Полнотекстовый поиск — мощный инструмент, который может значительно улучшить ваши приложения. Но как сделать его максимально быстрым и эффективным?

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

Читать статью

tags: #статья #postgresql

SQL Community | Чат
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥83
💻 Индексы в PostgreSQL

В статье подробно разбираются индексы в PostgreSQL: какие бывают, как работают и в каких случаях стоит применять каждый тип.

Даются практические советы по выбору и использованию B-деревьев, хеш-индексов, GiST, GIN и BRIN для оптимизации запросов.

Читать статью

tags: #статья #postgresql

SQL Community | Чат
Please open Telegram to view this post
VIEW IN TELEGRAM
7🔥1
💻 Индексы в PostgreSQL. Часть 2

В статье подробно разбирается, как устроены методы доступа в PostgreSQL и что можно узнать о поведении индексов через таблицу pg_am.

Автор показывает, как определить, поддерживает ли индекс сортировку, уникальность, кластеризацию и другие свойства.

Читать статью

tags: #статья #postgresql

SQL Community | Чат
Please open Telegram to view this post
VIEW IN TELEGRAM
4👍2🔥2
💻 MVCC-1. Изоляция

В статье подробно разбирается, как реализована многоверсионность (MVCC) в PostgreSQL и как работают уровни изоляции транзакций.

Автор объясняет, какие эффекты видимости могут возникать при параллельной работе и как PostgreSQL обеспечивает согласованность данных без блокировок.

Читать статью

tags: #статья #postgresql

SQL Community | Чат
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4🔥42
💻 MVCC-2. Слои, файлы, страницы

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

Автор объясняет, как работает механизм многоверсионности и почему важно понимать внутреннее устройство для отладки и оптимизации запросов.

Читать статью

tags: #статья #postgresql

SQL Community | Чат
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥5👍42
💻 MVCC-3. Версии строк

В статье объясняется, как PostgreSQL хранит несколько версий одной и той же строки для обеспечения изоляции транзакций без блокировок.

Показывается, как работают системные поля xmin и xmax, и как они помогают определить, какие данные видны в конкретной транзакции.

Читать статью

tags: #статья #postgresql

SQL Community | Чат
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥51
💻 MVCC-4. Снимки данных

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

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

Читать статью

tags: #статья #postgresql

SQL Community | Чат
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥64
💻 MVCC-5. Внутристраничная очистка и HOT

В статье объясняется, почему база данных в PostgreSQL со временем может раздуваться и замедляться, несмотря на удаление и обновление строк.

Разбирается, как работают внутристраничная очистка и HOT-обновления, и как понять, применяются ли они в вашей таблице и помогают ли экономить место.

Читать статью

tags: #статья #postgresql

SQL Community | Чат
Please open Telegram to view this post
VIEW IN TELEGRAM
4👍3🔥2
💻 MVCC-6. Очистка

В статье объясняется, как работает процесс VACUUM и почему без него база со временем начинает занимать больше места и работать медленнее.

Автор разбирает ключевые этапы очистки, такие как удаление “мусорных” строк и обновление внутренних структур, влияющих на производительность.

Читать статью

tags: #статья #postgresql

SQL Community | Чат
Please open Telegram to view this post
VIEW IN TELEGRAM
👍43🔥3
💻 MVCC-7. Автоочистка

В статье разбирается, как autovacuum в PostgreSQL незаметно поддерживает производительность базы и что делать, если он перестаёт справляться.

Объясняется, как настроить параметры, отследить проблемы и избежать незаметного раздувания таблиц и падения скорости запросов.

Читать статью

tags: #статья #postgresql

SQL Community | Чат
Please open Telegram to view this post
VIEW IN TELEGRAM
4🔥3
Forwarded from Python/ django
🖥 py-pglite — PostgreSQL без установки, тестируй как с SQLite!

py-pglite — обёртка PGlite для Python, позволяющая запускать настоящую базу PostgreSQL прямо при тестах. Без Docker, без настройки — просто импортируй и работай.

📌 Почему это круто:
- 🧪 Ноль конфигурации: никакого Postgres и Docker, только Python
- Молниеносный старт: 2–3 с против 30–60 с на традиционные подходы :contentReference[oaicite:2]{index=2}
- 🔐 Изолированные базы: новая база для каждого теста — чисто и безопасно
- 🏗️ Реальный Postgres: работает с JSONB, массивами, оконными функциями
- 🔌 Совместимость: SQLAlchemy, Django, psycopg, asyncpg — любая связка :contentReference[oaicite:3]{index=3}

💡 Примеры установки:

pip install py-pglite
pip install py-pglite[sqlalchemy] # SQLAlchemy/SQLModel
pip install py-pglite[django] # Django + pytest-django
pip install py-pglite[asyncpg] # Асинхронный клиент
pip install py-pglite[all] # Всё сразу


🔧 Пример (SQLAlchemy)


python
def test_sqlalchemy_just_works(pglite_session):
user = User(name="Alice")
pglite_session.add(user)
pglite_session.commit()
assert user.id is not None


py‑pglite — идеальный инструмент для unit- и интеграционных тестов, где нужен настоящий Postgres, но без всей админской рутины.

Полноценный
PostgreSQL — без его тяжеловесности.

Github

@pythonl

#python #sql #PostgreSQL #opensource
Please open Telegram to view this post
VIEW IN TELEGRAM
👍144🥰3