Как стать автором
Обновить
95.69

PostgreSQL *

Свободная объектно-реляционная СУБД

Сначала показывать
Порог рейтинга
Уровень сложности

Python для gambling'a. Часть 1 — Сбор данных

Уровень сложности Простой
Время на прочтение 21 мин
Количество просмотров 48

Предисловие

Простой python-cкрипт для парсинга спортивной статистики по баскетболу с популярного сайта

Читать далее
Рейтинг 0
Комментарии 0

Новости

Инструкция по бэкапу одной базы в Postgres – миф или реальность

Уровень сложности Простой
Время на прочтение 10 мин
Количество просмотров 1K

Бэкап в Postgres состоит из набора граблей, которые нужно обойти для успешного восстановления. Они заложены в самых неожиданных местах от предмета резервного копирования (база или кластер), до структуры каталогов. Один неверный шаг и восстановление будет невозможным. Почему нельзя  было сделать проще как в MS SQL или Oracle? Почему бэкап в Postgres оставляет впечатление чьей то лабораторной работы? Статья адресована прежде всего специалистам 1С избалованным комфортом в MS SQL, в суровых буднях импортозамещения на Postgres.

Сохранить в бэкап
Всего голосов 5: ↑3 и ↓2 +1
Комментарии 15

Плагин для анализа планов PostgreSQL в Eclipse и DBeaver, и его разработка

Уровень сложности Средний
Время на прочтение 8 мин
Количество просмотров 946

Для пользователей explain.tensor.ru - нашего сервиса визуализации PostgreSQL-планов, в дополнение к плагину Jetbrains мы создали еще один - с возможностью форматировать запросы и анализировать планы в Eclipse IDE и DBeaver.

Читать далее
Всего голосов 6: ↑6 и ↓0 +6
Комментарии 2

Как следует произносить название СУБД PostgreSQL

Уровень сложности Простой
Время на прочтение 2 мин
Количество просмотров 25K

Очень часто можно услышать, как люди произносят название СУБД PostgreSQL в следующих вариантах: Постгре́ (наверное, на французский манер) или По́стгре (наверное, по аналогии с произношением названия немецкого бренда Pórsche). Возможно, имеет место быть еще вариант Постгр (по аналогии с Ogre — Огр, хотя на английский манер это бы превратилось по звучанию в Постгэр/Постгэ).

Читать далее
Всего голосов 80: ↑66 и ↓14 +52
Комментарии 79

Истории

Django, PostgreSQL, Gunicorn/uWSGI, Nginx

Уровень сложности Сложный
Время на прочтение 12 мин
Количество просмотров 7.4K

Подробное описание шагов при деплое web-проекта на Django с PostgreSQL, Nginx, Gunicorn.

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

Читать далее
Всего голосов 5: ↑5 и ↓0 +5
Комментарии 3

Join или не Join, вот в чем вопрос…

Уровень сложности Простой
Время на прочтение 9 мин
Количество просмотров 13K

В процессе разработки программ с обращениями к базам данных часто возникает проблема создания SQL-запроса по большому количеству таблиц. Существует два варианта: один сложный запрос с большим количеством Join’ов и условий или несколько простых SQL-запросов с последовательным применением результата обработанного запроса к следующим запросам. Какой более эффективный? Читайте в статье.

Читать далее
Всего голосов 19: ↑10 и ↓9 +1
Комментарии 36

Управление загрузкой с помощью PostgreSQL и pg_headerkit

Уровень сложности Простой
Время на прочтение 4 мин
Количество просмотров 2.7K

Привет, Хабр!

Supabase – это крутой open-source аналог Firebase, с его помощью можно организовать крутые штуки вроде ограничения скорости запросов.

Supabase – это инструмент, который дает возможность создавать масштабируемые серверные решения, используя PostgreSQL. С его помощью можно легко управлять базами данных, аутентификацией, хранением данных и реальным временем, но без всяких vendor lock-ins.

Rate Limiting контролирует поток запросов, чтобы ваш сервер не ушел в нокаут от перегрузки. Это спасает сервера от DDOS-атакти помогает обеспечить более равномерное распределение ресурсов среди пользователей.

Читать далее
Всего голосов 12: ↑9 и ↓3 +6
Комментарии 0

Как в СУБД реализовать администратора без прав доступа к данным

Уровень сложности Средний
Время на прочтение 9 мин
Количество просмотров 5.3K

В СУБД-строении есть не новая, но не теряющая актуальности задача. Сформулировать её можно примерно так: как убрать возможность суперпользователя взаимодействовать с данными, но оставить ему все возможности по управлению СУБД? Эта функция затребована не только большими компаниями с жёсткими требованиями к информационной безопасности, но и крайне нужна всем, кто попадает под различного вида государственные регуляции, вроде приказа ФСТЭК №64 или страшного GDPR.

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

В этой статье мы хотим поговорить о том, какие есть подходы к решению этой проблемы, какие можно найти реализации на рынке, и что решили сделать мы в Postgres Professional.

Читать далее
Всего голосов 14: ↑14 и ↓0 +14
Комментарии 11

Построитель SQL запросов на основе мета-информации миграций БД

Уровень сложности Простой
Время на прочтение 8 мин
Количество просмотров 4.1K

В век когда ORM шагает по планете обычный построитель запросов выглядит откатом назад. Однако тут есть нюанс — Sql Query Builder использует пакет версионирования shasoft/db-schema и владеет всей информацией о структуре базы данных. Это позволяет реализовать все стандартные для таких решений функции, прозрачно конвертировать типы данных SQL<=>PHP + реализовать нестандартные возможности в виде выборки данных с использованием КЭШирования. (Просьба не искать логику в SQL запросах в статье и примерах, её там нет. Искусственные примеры предназначены для демонстрации возможностей пакета и никакой другой смысловой нагрузки не несут).


Читать дальше →
Всего голосов 3: ↑3 и ↓0 +3
Комментарии 9

Ключи в базе данных: практический обзор для начинающих системных аналитиков

Уровень сложности Простой
Время на прочтение 6 мин
Количество просмотров 5.6K

Всем привет! Меня зовут Оксана, я системный аналитик из компании EvApps. Что побудило меня написать эту статью? Я обучаю стажеров – системных аналитиков, и недавно столкнулась с такими вопросами, о которых раньше даже не задумывалась.

Вопросы были связаны с разными видами ключей в базе данных и с тем, как они связаны между собой (тему с реляционными БД мы разбираем на примере PostgreSQL). Я начала искать разные статьи по этой теме, очень много крутого материала на том же «Хабре», но многие вопросы так и остались не раскрытыми. И мне стало интересно разобраться с этими вопросами и «пощупать» все это на практике. В итоге начала изучать документацию PostgreSQL и теорию реляционных баз данных, но чтобы получить ответы, пришлось все проверять на практических примерах.

В этой статье мне хотелось разобрать разные вопросы с доказательными примерами.

Читать далее
Всего голосов 11: ↑10 и ↓1 +9
Комментарии 14

Как мы начали использовать виртуальные потоки Java 21 и на раз-два получили дедлок в TPC-C для PostgreSQL

Уровень сложности Средний
Время на прочтение 9 мин
Количество просмотров 15K

В этом посте мы расскажем о примере дедлока в TPC-C для PostgreSQL, причиной которого является исключительно переход на виртуальные потоки Java 21 - и никаких проблем обедающих философов.

Читать далее
Всего голосов 20: ↑19 и ↓1 +18
Комментарии 31

Организация SQL скриптов крупного проекта

Уровень сложности Средний
Время на прочтение 7 мин
Количество просмотров 9.4K

Если проект использует реляционную СУБД обязательно возникнет вопрос - как организовать скрипты для сохранения гибкости и уменьшения трудозатрат.

Погружаемся
Всего голосов 20: ↑17 и ↓3 +14
Комментарии 16

Плагин для анализа планов PostgreSQL в IDE JetBrains и его разработка

Уровень сложности Средний
Время на прочтение 11 мин
Количество просмотров 5K

Для пользователей explain.tensor.ru - нашего сервиса визуализации PostgreSQL-планов, мы создали плагин "Explain PostgreSQL" для всех IDE от JetBrains, теперь есть возможность форматировать запросы и анализировать планы непосредственно в IDE.

Как использовать плагин и детали о его разработке читайте ниже.

Читать далее
Всего голосов 17: ↑17 и ↓0 +17
Комментарии 21

Ближайшие события

Открытый урок «Behaviour Tree в Unity»
Дата 8 февраля
Время 19:00
Место
Онлайн

Особенности партиционирования в PostgreSQL и Apache Hive

Время на прочтение 11 мин
Количество просмотров 4.4K

Часто специалисты, работающие с классическими реляционными базами данных, например, с PostgreSQL, испытывают затруднения в работе при переходе на систему хранения больших данных типа Apache Hive. Это связано с непониманием того, как можно использовать в новой среде уже наработанные подходы и методы работы с данными.

В данной статье рассмотрены некоторые особенности использования языка SQL в реляционных СУБД и Apache Hive. Кроме того, проведен сравнительный обзор возможностей и подходов, а также применение партиционирования на практике.

Материал будет полезен специалистам младших и средних грейдов, которые используют в своей практике SQL, но имеют мало опыта в Hive или Postgres.

Читать далее
Всего голосов 2: ↑2 и ↓0 +2
Комментарии 22

PITR в PostgreSQL

Время на прочтение 6 мин
Количество просмотров 3.7K

Привет, Хабр!

Cколько раз вы сталкивались с ситуацией, когда что-то пошло не так и вам необходимо было в срочном порядке восстановить данные из бдшки, причем так, чтобы это было максимально близко к определенному моменту в прошлом? PITR – наш герой, спасающий наши нервы.

Читать далее
Всего голосов 19: ↑13 и ↓6 +7
Комментарии 3

Быстрая установка PostgreSQL (PgAdmin 4, Adminer) на VPS

Уровень сложности Средний
Время на прочтение 3 мин
Количество просмотров 4.1K

Быстрая установка PostgreSQL (PgAdmin 4, Adminer) на VPS через docker.

Подключиться к своему VPS по SSH.

Для установки надо перейти на Гитхаб

Скопировать одну команду, вставить в терминале и запустить.

Команды скачает bash скрипт, сделает его исполняемым и запустит его.

После ответить на пару вопросов и все готово.

Читать далее
Всего голосов 22: ↑7 и ↓15 -8
Комментарии 9

Как оптимизировать медленные SQL запросы?

Время на прочтение 18 мин
Количество просмотров 24K

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

Как выявить и отладить такие проблемы? В этой статье будет показано решение наиболее распространённых проблем с производительностью БД, вызванных неправильной индексацией. Примеры будут приведены для Postgres, MySQL и SQLite.

Читать далее
Всего голосов 19: ↑11 и ↓8 +3
Комментарии 38

Connection pool для pqxx

Уровень сложности Средний
Время на прочтение 8 мин
Количество просмотров 2K

В процессе изучения бекэнда, как нового для меня направления в программировании, я столкнулся с необходимостью оптимизации управления соединениями. Поискав в интернете существующие решения для библиотеки pqxx (C++ API для PostgreSQL), я обнаружил, что хотя они и выполняют свою задачу, ни одно из них не соответствовало моим требованиям.

Это побудило меня разработать собственную реализацию пула соединений, которая была бы не только эффективной и масштабируемой, но и предоставляла бы удобный API для работы с транзакциями. Моя цель - создать решение, которое могло бы быть легко интегрировано в любой проект, использующий pqxx, обеспечивая при этом более высокую производительность и стабильность.

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

Читать далее
Всего голосов 7: ↑7 и ↓0 +7
Комментарии 1

Курс «PostgreSQL для начинающих»: #3 — Сложные SELECT

Уровень сложности Средний
Время на прочтение 12 мин
Количество просмотров 18K

Продолжаю публикацию расширенных транскриптов лекционного курса "PostgreSQL для начинающих", подготовленного мной в рамках "Школы backend-разработчика" в "Тензоре".

В этой лекции углубимся в расширенные возможности команды SELECT : как можно "сложить" и "вычесть" выборки (UNION/INTERSECT/EXCEPT), или запомнить и использовать в рекурсивных запросах (CTE), что дают оконные функции (WINDOW) и соединения (JOIN).

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

Читать далее
Всего голосов 35: ↑34 и ↓1 +33
Комментарии 5

Распределенное управление конкурентностью

Уровень сложности Простой
Время на прочтение 4 мин
Количество просмотров 4.2K

Управление конкурентным доступом является очень важной концепцией в Системе Управления Базами Данных. Оно гарантирует, что одновременное выполнение запросов несколькими процессами или пользователями оставит данные в согласованном состоянии. Особое место занимает доступ к Базе Данных в распределенной системе с множеством конкурирующих за ресурс узлов.

Читать далее
Всего голосов 7: ↑5 и ↓2 +3
Комментарии 5

Вклад авторов