В статье рассматриваются различные методы оптимизации операций
JOIN
в PostgreSQL для повышения производительности запросов. Автор объясняет, как работают типы соединений
Nested Loop Join
, Hash Join
и Merge Join
, и предоставляет рекомендации по выбору оптимального метода в зависимости от структуры данных и доступных ресурсов.tags: #статья #postgresql
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3🔥2👍1
В статье рассматривается использование PostgreSQL для работы с данными в формате JSON, включая выполнение запросов и обновление информации.
Автор демонстрирует, как применять разные функции для извлечения, обновления и удаления данных из колонок типа JSON/JSONB, а также объясняет, как создавать индексы для улучшения производительности.
tags: #статья #postgresql
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4❤2
Мы уже выяснили, что обычный
VACUUM
не уменьшает размер таблицы, а лишь помечает «мёртвые» строки доступными для перезаписи. Если таблица раздулась и больше не используется, нужен
VACUUM
FULL
.Сегодня разберём, как он работает, почему блокирует таблицу и какие есть альтернативы.
🔖 Предыдущая часть — КЛИК
70
tags: #обучение #postgresql
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
❤44🔥4👍1
При сложных выборках с условиями по нескольким столбцам B-Tree индексы могут работать неэффективно.
В таких случаях на помощь приходит Bloom-индексация — метод, позволяющий ускорить поиск за счет компактного хранения информации.
В статье разбирается, как работают Bloom-фильтры, когда их стоит применять и как правильно настроить их в PostgreSQL.
Что вы узнаете в статье?
▶️ В чем особенности Bloom-индексов и чем они отличаются от B-Tree?▶️ Как использовать расширение bloom в PostgreSQL?▶️ В каких сценариях такой индекс дает наибольший прирост производительности?
Этот инструмент поможет ускорить работу базы данных и снизить нагрузку на систему при сложных запросах.
tags: #статья #postgresql
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2⚡1❤1
Полнотекстовый поиск — мощный инструмент, который может значительно улучшить ваши приложения. Но как сделать его максимально быстрым и эффективным?
В статье автор делится, как применять встроенные средства базы данных для работы с текстовой информацией, включая индексы, специальные типы данных и подходы к ранжированию результатов.
tags: #статья #postgresql
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥8❤3
В статье подробно разбираются индексы в PostgreSQL: какие бывают, как работают и в каких случаях стоит применять каждый тип.
Даются практические советы по выбору и использованию B-деревьев, хеш-индексов, GiST, GIN и BRIN для оптимизации запросов.
tags: #статья #postgresql
Please open Telegram to view this post
VIEW IN TELEGRAM
❤7🔥1
В статье подробно разбирается, как устроены методы доступа в PostgreSQL и что можно узнать о поведении индексов через таблицу
pg_am
. Автор показывает, как определить, поддерживает ли индекс сортировку, уникальность, кластеризацию и другие свойства.
tags: #статья #postgresql
Please open Telegram to view this post
VIEW IN TELEGRAM
❤4👍2🔥2
В статье подробно разбирается, как реализована многоверсионность (MVCC) в PostgreSQL и как работают уровни изоляции транзакций.
Автор объясняет, какие эффекты видимости могут возникать при параллельной работе и как PostgreSQL обеспечивает согласованность данных без блокировок.
tags: #статья #postgresql
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4🔥4❤2
В статье подробно разбирается, как физически устроено хранение данных в PostgreSQL — от структуры таблиц и индексов до формата страниц и файлов.
Автор объясняет, как работает механизм многоверсионности и почему важно понимать внутреннее устройство для отладки и оптимизации запросов.
tags: #статья #postgresql
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥5👍4❤2
В статье объясняется, как PostgreSQL хранит несколько версий одной и той же строки для обеспечения изоляции транзакций без блокировок.
Показывается, как работают системные поля xmin и xmax, и как они помогают определить, какие данные видны в конкретной транзакции.
tags: #статья #postgresql
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥5❤1
В статье разбирается, как PostgreSQL формирует snapshot — снимок состояния базы данных, который позволяет каждой транзакции видеть «свою» версию данных.
Объясняется, как это влияет на изоляцию, согласованность и какие метаданные управляют видимостью строк.
tags: #статья #postgresql
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥6❤4
В статье объясняется, почему база данных в PostgreSQL со временем может раздуваться и замедляться, несмотря на удаление и обновление строк.
Разбирается, как работают внутристраничная очистка и HOT-обновления, и как понять, применяются ли они в вашей таблице и помогают ли экономить место.
tags: #статья #postgresql
Please open Telegram to view this post
VIEW IN TELEGRAM
❤4👍3🔥2
В статье объясняется, как работает процесс
VACUUM
и почему без него база со временем начинает занимать больше места и работать медленнее. Автор разбирает ключевые этапы очистки, такие как удаление “мусорных” строк и обновление внутренних структур, влияющих на производительность.
tags: #статья #postgresql
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4❤3🔥3
В статье разбирается, как autovacuum в PostgreSQL незаметно поддерживает производительность базы и что делать, если он перестаёт справляться.
Объясняется, как настроить параметры, отследить проблемы и избежать незаметного раздувания таблиц и падения скорости запросов.
tags: #статья #postgresql
Please open Telegram to view this post
VIEW IN TELEGRAM
❤4🔥3
Forwarded from Python/ django
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
👍14❤4🥰3