PostgreSQL — это бесплатная объектно-реляционная система управления базами данных с открытым исходным кодом , распространяемая под лицензией PostgreSQL, аналогичной лицензиям BSD или MIT.
Как и во многих других проектах с открытым исходным кодом, разработка PostgreSQL осуществляется не компанией или отдельным лицом, а сообществом разработчиков, которые работают бескорыстно, альтруистически, бесплатно или при поддержке коммерческих организаций.
Некоторые из его основных характеристик:
Высокая посещаемость
Благодаря системе MVCC (Multiversion Concurrent Access) PostgreSQL позволяет процессам записывать данные в таблицу, в то время как другие процессы обращаются к той же таблице без блокировок . Каждый пользователь получает согласованное представление данных.
PostgreSQL изначально поддерживает:
- Числа произвольной точности.
- Текст неограниченной длины.
- Геометрические фигуры (с множеством связанных функций).
- IP-адреса (IPv4 и IPv6).
- Блоки адресов стиля CIDR.
- MAC-адреса.
Массивы.
Кроме того, пользователи могут создавать собственные типы данных, которые могут быть полностью проиндексированы благодаря инфраструктуре GiST в PostgreSQL. Примерами могут служить типы данных ГИС, созданные проектом PostGIS.
О новой версии PostgreSQL 11.0
Несколько дней назад вышла новая версия PostgreSQL — PostgreSQL 11, которая включает в себя новые функции и, самое главное, ряд исправлений ошибок.
Основные нововведения в том, что они ориентированы на управление базами данных с большим объемом данных.
Улучшенный раздел
PostgreSQL давно поддерживает секционирование ; это подразумевает хранение данных в нескольких отдельных таблицах, которые логически являются частью одной таблицы.
Пользователь базы данных не видит такого распределения, которое позволяет хранить данные в нескольких файловых системах, придавая им различные характеристики в зависимости от типа данных. Например, свежие данные хранятся на SSD-накопителе, а старые — на жестком диске.
Можно было разбивать данные на списки или интервалы. Теперь можно разбить хэш ключа для рандомизации данных.
Это позволяет распределять операции чтения и записи по нескольким хранилищам.
Первичные и внешние ключи, а также индексы и триггеры теперь могут быть объявлены на уровне первичной таблицы и будут отражены во всех таблицах-членах в секции.
Теперь PostgreSQL также может автоматически изменять данные разделов при изменении ключа дистрибутива.
Скорость чтения секционированных таблиц также была улучшена благодаря новой стратегии удаления секций.
Функция UPSERT теперь доступна для секционированных таблиц.

Доступность транзакций в хранимых процедурах
Хранимые процедуры были доступны в PostgreSQL уже давно, но создавать транзакции там было невозможно. Теперь это возможно.
Улучшенная производительность
Теперь можно выполнять множество операций параллельно, используя преимущества многочисленных ядер современных процессоров.
Таким образом, секционированные таблицы можно читать параллельно, в том числе и тогда, когда запрос SELECT включает в себя предложение UNION.
Создание индексов также выполняется параллельно, как и другие команды языка определения данных ( DDL ), такие как CREATE TABLE или CREATE MATERIALIZED VIEW.
Создавайте на ходу
Доступен компилятор, работающий по времени выполнения . Он может оптимизировать сложные запросы для повышения скорости их выполнения. PostgreSQL использует для этой цели компилятор LLVM.
Для активации необходимо добавить параметр jit=on в конфигурационный файл или определить переменную сессии SET jit=on.
Упрощение = скорость
Теперь нет необходимости перезаписывать всю таблицу при выполнении вызова ALTER TABLE … ADD COLUMN … DEFAULT … с ненулевым значением по умолчанию. Это значительно повышает скорость выполнения этой команды, особенно при работе с большими таблицами.
User Experience
В дополнение к \q, командная строка (psql) теперь распознает ключевые слова quitty exit для завершения процесса.
Чтобы получить эту новую версию, вы можете перейти по следующей ссылке.