PostgreSQL — TechCave

PostgreSQL — свободная объектно-реляционная система управления базами данных (СУБД).

PostgreSQL — свободная объектно-реляционная система управления базами данных (СУБД).

Существует в реализациях для множества UNIX-подобных платформ, включая AIX, различные BSD-системы, HP-UX, IRIX, Linux, macOS, Solaris/OpenSolaris, Tru64, QNX, а также для Microsoft Windows.

Стена группы

Загрузка...
Den
8 дней назад
#

DataGrip 2018.3: поддержка Cassandra, генерация SQL-файлов из объектов, много улучшений в автодополнении и многое другое



Привет! Это рассказ о том, что нового в нашем плагине для баз данных. Мы выпускаем его, как отдельный продукт
DataGrip, и поставляем почти во все другие наши IDE. Будет много картинок и гифок. Для тех, кому лень их смотреть:

  • Поддержка Cassandra

  • Создание SQL-файлов из объектов схемы

  • Новые инспекции

  • Много новых штук в автодополнении

  • Работа с источником данных через одно подключение

  • Новый поиск

  • Высококонтрастная цветовая схема



Спасибо тем, кто пробует EAP-версии и сообщает в наш трекер о проблемах: это помогает не дотащить их до релиза smile Активные пользователи уже получили бесплатные подписки на год.

image

Источник
Загрузка...
Den
17 дней назад
#

Подсветка синтаксиса PostgreSQL



Спешу поделиться хорошей новостью: жизнь авторов статей про PostgreSQL и их читателей стала немного лучше.

Как знают все хаброписатели, для оформления исходного кода используется специальный тег
<source>, который подсвечивает синтаксис. Не секрет также, что подсветка не всегда получается идеальной, и тогда авторы (которым не все равно, как выглядят их статьи) вынуждены заниматься самодеятельностью — расцвечивать свой код с помощью
<font color=...>.

Особенно печально все было с PostgreSQL, поскольку подсветка охватывала более или менее стандартный SQL и категорически не понимала специфики нашей СУБД. Шло время, Алексей
boomburum старательно исправлял мои font-ы на source (а я — обратно), пока не стало очевидно, что подсветку надо чинить. Наконец Далер
daleraliyorov подсказал выход: добавить поддержку PostgreSQL в библиотеку
highlightjs, которой пользуется Хабр. И вот — готово, встречайте.

Источник
Загрузка...
1 месяц назад
#

Вышел PostgreSQL 11





Специальный выпуск POSTGRESSO, посвященный выходу официального релиза версии 11.

На улице PostgreSQL праздник. После четырех beta вышла
PostgreSQL 11 General Availability, то есть официальная версия. В
анонсе есть даже приветственное слово
Брюса Момджана: «готовя этот релиз, сообщество особенно заботилось о добавлении функциональности, необходимой для работы с очень большими базами данных. Доказано, что PostgreSQL хорошо работает с транзакционными нагрузками, а теперь новая версия — PostgreSQL 11 — облегчит разработчикам еще и создание приложений для Big Data».

В
release notes выделяют

  • секционирование:
    • добавлено секционирование по хешу;

    • PRIMARY KEY, FOREIGN KEY, индексы (см. ниже на эту тему) и триггеры;

    • секция по умолчанию для записей, вышедших за границы созданных секций;

    • UPDATE по ключу секционирования теперь может автоматически перемещать запись в соответствующую секцию;

    • PostgreSQL научился исключать ненужные секции (partition pruning) во время исполнения запросов SELECT;


  • распараллеливание:
    • теперь можно параллельно создавать индекс в случае B-tree;

    • при CREATE TABLE… AS, CREATE MATERIALIZED VIEW и в некоторых случаях запросов с UNION;

    • улучшена производительность в параллельных HASH JOIN и SEQUENTIAL SCAN;


  • появились хранимые процедуры, и в них возможно управление транзакциями;

  • JIT-компиляция фрагментов запросов, выигрыш на вычислении выражений;

  • оконные функции теперь поддерживают все фреймовые опции SQL:2011 стандарта, в том числе расстояния по RANGE у PRECEDING/FOLLOWING, режим GROUPS, возможность исключения строк из фрейма;

  • появились покрывающие индексы [не покрывающие, а инклюзивные, строго говоря — прим. POSTGRESSO], использующие выражение INCLUDE при CREATE INDEX;

  • из раздела «разное»: ALTER TABLE… ADD COLUMN c значениями NOT NULL по умолчанию: этот вариант команды теперь не перезаписывает все строки таблицы и, следовательно, работает быстро.



Источник
Загрузка...
2 месяца назад
#

Дома ФИАС в среде PostgreSQL



Предыдущая статья с описанием адресов ФИАС и функций для работы с ними в среде PostgreSQL вызвала интерес у небольшой части читателей.

Поэтому имеет смысл описать аналогичные функции на языке PL/pgSQL для работы со списком домов ФИАС, загруженным в базу данных под управлением PostgreSQL.



В первой половине статьи изложены комментарии к реализации функций. Во второй- исходные тексты функций, а также скрипты для создания таблицы с записями домов ФИАС, а также загрузки данных в эту таблицу из файла в формате CSV. Тем из читателей, кого интересуют только исходные тексты, предлагаем сразу перейти к Приложению.

Источник
Загрузка...
10 месяцев назад
#

Avito в русскоязычном PostgreSQL комьюнити: открываем 2018, вспоминаем 2017



Всем привет! Прошедший год для пользователей и разработчиков Postgres был очень насыщенным. И 2018-й обещает быть не менее интересным и ярким. Под катом я расскажу об одном из первых громких событий для сообщества — PGConf.Russia 2018, и о том, чем запомнился прошедший год для DBA-команды Avito.





Источник
Загрузка...
10 месяцев назад
#

Опыт построения логов на Postgres



Мы разработали свою систему логирования на PostgreSQL… Да я знаю, что есть надстройки над ElasticSearch (GrayLog2, Logstash), и что есть другие похожие инструменты, и есть те, про которые не знаю. Тем не менее, наш инструмент на текущий момент построен на PostgreSQL, и он работает.

Во время рабочей недели со всех сервисов
СБИС в облаке к нам поступает в сутки более 11 млрд записей, хранятся они 3 дня, общий объем занимаемого при этом места не превышает 32 Тб. Все это обрабатывает 8 серверов с PostgreSQL 9.6. Каждый сервер имеет 24 ядра, RAM 16Гб и 4 SSD диска по 1Тб.



Источник
Загрузка...
10 месяцев назад
#

Индексы в PostgreSQL — 9



В прошлых статьях мы рассмотрели
механизм индексирования PostgreSQL,
интерфейс методов доступа и следующие методы:
хеш-индексы,
B-деревья,
GiST,
SP-GiST,
GIN и
RUM. Тема этой статьи — BRIN-индексы.

BRIN

Общая идея

В отличие от индексов, с которыми мы уже познакомились, идея BRIN не в том, чтобы быстро найти нужные строки, а в том, чтобы избежать просмотра заведомо ненужных. Это всегда
неточный индекс: он вообще не содержит TID-ов табличных строк.

Упрощенно говоря, BRIN хорошо работает для тех столбцов, значения в которых коррелируют с их физическим расположением в таблице. Иными словами, если запрос без предложения ORDER BY выдает значения столбца практически в порядке возрастания или убывания (и при этом по столбцу нет индексов).

Метод доступа создавался в рамках европейского проекта по сверхбольшим аналитическим базам данных
Axle с прицелом на таблицы размером в единицы и десятки терабайт. Важное свойство BRIN, позволяющее создавать индексы на таких таблицах — небольшой размер и минимальные накладные расходы на поддержание.

Работает это следующим образом. Таблица разбивается на
зоны (range) размером в несколько страниц (или блоков, что то же самое) — отсюда и название: Block Range Index, BRIN. Для каждой зоны в индексе сохраняется
сводная информация о данных в этой зоне. Как правило, это минимальное и максимальное значения, но бывает и иначе, как мы увидим дальше. Если при выполнении запроса, содержащего условие на столбец, искомые значения не попадают в диапазон, то всю зону можно смело пропускать; если же попадают — все строки во всех блоках зоны придется просмотреть и выбрать среди них подходящие.

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

Теперь рассмотрим устройство индекса более подробно.

Источник
Загрузка...
11 месяцев назад
#

Приглашаем на PGConf.Russia 2018



Очень скоро, а именно 5-7 февраля 2018 г. в Москве будет проводиться одна из основных мировых конференций по СУБД PostgreSQL —
PGConf.Russia. В этой статье мы анонсируем основные доклады конференции, и расскажем об особенностях её проведения в этом году.

Источник
Загрузка...
11 месяцев назад
#

Дайджест новостей из мира PostgreSQL





Друзья! Мы решили запустить дайджест свежих новостей, статей, релизов и событий из мира PostgreSQL, который будет выходить раз в две недели. В подборке вы найдете ссылки на наиболее интересные материалы по PostgreSQL, вышедшие за период. Если мы пропустили что-то важное для вас – пишите в комментариях!

Релизы

  • Вышел Postgres Pro Standard 10.1.1. В эту версию перенесены все ключевые доработки и новые возможности СУБД Postgres Pro Standard 9.6, исправлены некоторые найденные ошибки. Также вышла сборка PostgreSQL 10.1 под Windows

  • Вышла версия PgBouncer 1.8.1. Исправлена ошибка в 1.8: добавлен недостающий файл, теперь PgBouncer без проблем собирается из тарбола.

  • Появилась версия драйвера psqlODBC 10.01.0000. Некоторые поправки и усовершенствования по сравнению с версией 10.00.0000. Например, ликвидированы утечки памяти.



Статьи

  • В статье Jsonb: few more stories about the performance
    Дмитрий Долгов (Zalando) обнародовал производительность PostgreSQL, MySQL и MongoDB на тестах YCSB. Сравнивалась производительность обработки бинарных JSON-ов (JSONB и BSON). Методика тестирования (в облаке) расписана подробно, есть выводы и рекомендации.
    До этого тема обсуждалась на PGConf.EU 2017 в Варшаве и на других конференциях. Например, в презентации Олега Бартунова по результатам YCSB-тестирования в Postgres Professional (слайд 81 и далее). В этих тестах на выделенных мощных серверах сравнивались только MongoDB и PostgreSQL, а акцент был сделан на высокую нагрузку (тысячи клиентов одновременно).



Источник
Загрузка...
11 месяцев назад
#

Живой митап #RuPostgres: вопросы и ответы с экспертами Avito. Расшифровка прямого эфира



Около месяца назад мои коллеги из DBA-команды приняли участие в живом митапе на youtube-канале #RuPostgres Live, где отвечали на вопросы Николая Самохвалова и зрителей, которые присылали их в форму и подключились к трансляции. Получилась интересная и содержательная беседа про PostgreSQL, опыт работы с разными версиями и задачами. Поэтому мы решили сделать текстовую расшифровку этой встречи, обогатив её полезными ссылками. В комментариях задавайте вопросы, если они возникнут — постараемся на них ответить!





Источник
Загрузка...
11 месяцев назад
#

Greenplum 5: первые шаги в Open Source



Вот уже два года как одна из лучших распределённых аналитических СУБД enterprise-уровня вышла в open source. Что изменилось за это время? Что дало открытие исходников проекту? Как дальше будет развиваться Greenplum?

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

Источник
Загрузка...
Den
1 год назад
#

Отчет с митапа Осенний Postgres в Райффайзенбанке



13 ноября на площадке Райффайзенбанка, прошел очередной PostgreSQL MeetUp. О том, как это было, что обсуждали и какие вопросы были самыми интересными, читайте под катом.



Источник
Загрузка...
1 год назад
#

Индексы в PostgreSQL — 8



Мы уже рассмотрели
механизм индексирования PostgreSQL,
интерфейс методов доступа и все основные методы доступа, как то:
хеш-индексы,
B-деревья,
GiST,
SP-GiST и
GIN. А в этой части посмотрим на превращение джина в ром.

RUM

Хоть авторы и утверждают, что джин — могущественный дух, но тема напитков все-таки победила: GIN следующего поколения назвали RUM.

Этот метод доступа развивает идею, заложенную в GIN, и позволяет выполнять полнотекстовый поиск еще быстрее. Это единственный метод в этой серии статей, который не входит в стандартную поставку PostgreSQL и является сторонним расширением. Есть несколько вариантов его установки:

  • Взять пакет yum или apt из репозитория PGDG. Например, если вы ставили PostgreSQL из пакета postgresql-10, то поставьте еще postgresql-10-rum.

  • Самостоятельно собрать и установить из исходных кодов на github (инструкция там же).

  • Пользоваться в составе Postgres Pro Enterprise (или хотя бы читать оттуда документацию).



Ограничения GIN

Какие ограничения индекса GIN позволяет преодолеть RUM?

Во-первых, тип данных tsvector, помимо самих лексем, содержит информацию об их позициях внутри документа. В GIN-индексе, как мы видели
в прошлый раз, эта информация не сохраняются. Из-за этого операции
фразового поиска, появившиеся в версии 9.6, обслуживается GIN-индексом неэффективно и вынуждены обращаться к исходным данным для перепроверки.

Во-вторых, поисковые системы обычно возвращают результаты в порядке релевантности (что бы это ни означало). Для этого можно пользоваться функциями
ранжирования ts_rank и ts_rank_cd, но их приходится вычислять для каждой строки результата, что, конечно, медленно.

Метод доступа RUM в первом приближении можно рассматривать как GIN, в который добавлена позиционная информация, и который поддерживает выдачу результата в нужном порядке (аналогично тому, как
GiST умеет выдавать ближайших соседей). Пойдем по порядку.

Источник
Загрузка...
1 год назад
#

Идеальный каталог, оптимизация выборки данных



Введение

На очередном собеседовании меня спросили о недостатках модели данных EAV (Entity Attribute Value), я не нашёл что сказать, на мой взгляд это идеальный способ хранения произвольных данных. После короткого раздумья, я сказал что единственная проблема это невозможность построить индексы для выборок.

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

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

Источник
Загрузка...
1 год назад
#

Сравнение качества кода Firebird, MySQL и PostgreSQL






Сегодняшняя статья несколько необычна. Как минимум по той причине, что вместо анализа одного проекта, будем искать ошибки сразу в трёх, а также посмотрим, где найдутся наиболее интересные баги. А самое интересное — мы выясним, кто молодец и пишет самый качественный код. Итак, на повестке дня — разбор ошибок в коде проектов Firebird, MySQL и PostgreSQL.

Источник
Загрузка...
2 3

Авторизация

Пользователи

NewEXE
Георгiй Москвитинъ
Andpyxa Tutunnik
Andrey_fox
Jane linch
genagy
Pasha Radiuk
KotikBSD
Эрик Имашев

GeekBrains

Нетология

Нетология