Издаване на СУБД PostgreSQL 12

След година разработка е публикувана нова стабилна версия на СУБД PostgreSQL 12. Актуализации за новата версия ще бъдат издавани в продължение на пет години до ноември 2024 година.

Основни нововъведения:

  • Добавена е поддръжка на „генерирани колони“, стойността на които се изчислява на база израз, обхващащ стойностите на други колони в същата таблица (аналогично на представления, но за отделни колони). Генерираните колони могат да бъдат от два типа – съхранявани и виртуални. В първия случай стойността се изчислява по време на добавяне или промяна на данните, а във втория – при всяко четене на база текущото състояние на другите колони. В момента PostgreSQL поддържа само съхранявани генерирани колони;
  • Добавена е възможността за извършване на заявки за данни от JSON-документи чрез Path-изрази, напомнящи на XPath и определени в стандарта SQL/JSON. За да се повиши ефективността на обработка на подобни изрази за документи, съхранявани в формат JSONB, се прилагат съществуващите механизми за индексиране;
  • По подразбиране е включено използването на JIT-компилатор (Just-in-Time) на базата на разработки от LLVM за ускоряване на изпълнението на някои изрази по време на обработка на SQL-заявки. Например, JIT може да се използва за ускоряване на изпълнението на изрази във блокове „WHERE“, в изходните списъци (target lists), агрегатни изрази и някои вътрешни операции;
  • Съществено е увеличена производителността на индексирането. Индексите B-tree са оптимизирани за работа в условия на чести промени на индексите – в тестовете TPC-C се наблюдава общо увеличение на производителността и намаляване на потреблението на дисково пространство с около 40%. Намалени са разходите при генерирането на лог на предишно записване (WAL) за типовете индекси GiST, GIN и SP-GiST. За GiST е добавена възможността за създаване на индекси-обвивки (чрез израз INCLUDE), които включват допълнителни колони. В операцията CREATE STATISTICS е осигурена поддръжка на статистики за най-често срещаните стойности (MCV), позволяваща генерирането на по-оптимални планове за заявки при използване на неравномерно разпределени колони;
  • Реализация на секционирането (партиционирането) е оптимизирана за заявки, обхващащи таблици с хиляди секции, но ограничени до избор на ограничено подмножество от данни. Производителността на добавянето на данни в секционирани таблици е увеличена чрез операции INSERT и COPY, а също така е осигурена възможност за добавяне на нови секции чрез „ALTER TABLE ATTACH PARTITION“ без блокиране на изпълнението на заявки;
  • Добавена е поддръжка за автоматично in-line развъртане на обобщени таблични изрази (Common Table Expression, CTE), позволяващи използването на времеви именувани резултатни набори, зададени чрез оператора WITH. In-line развъртането позволява повишаване на производителността на повечето заявки, но в момента се прилага само за нерекурсивни CTE;
  • Добавена е поддръжка недетерминирани свойства на локализация „Collation“, позволяващи задаване на правила за сортиране и методи на съпоставяне с оглед на смисъла на символите (например, при сортиране на цифрови стойности се взимат предвид наличието на минус и точка пред числото и различни видове писане, а при сравняване не се отчита регистърът на символите и наличието на ударение);
  • Добавена е поддръжка за многофакторна аутентификация на клиенти, при която в pg_hba.conf за аутентификация могат да се комбинират аутентификация по SSL-сертификат (clientcert=verify-full) с допълнителен метод на аутентификация, като scram-sha-256;
  • Добавена е поддръжка за криптиране на канала за връзка при аутентификация чрез GSSAPI, и от страна на клиента, и от страна на сървъра;
  • Добавена е поддръжка за определяне на LDAP сървъри на базата на записи „DNS SRV“, ако PostgreSQL е компилиран с OpenLDAP;
  • Добавена е операция „REINDEX CONCURRENTLY“ за възстановяване на индекси без блокиране на операциите по запис в индекса;
  • Добавена е команда pg_checksums, позволяваща за съществуваща БД да се включва и изключва проверката на контролни суми на страници с данни (по-рано тази операция се поддържаше само по време на инициализация на БД);
  • Осигурен е изход на индикатор за напредъка на операциите CREATE INDEX, REINDEX, CLUSTER, VACUUM FULL и pg_checksums;
  • Добавена е команда „CREATE ACCESS METHOD“ за свързване на обработчици на нови методи за съхранение на таблици, оптимизирани за различни специфични задачи. В момента единственият вграден метод за достъп до таблици е „heap“;
  • Конфигурационният файл recovery.conf е обединен с postgresql.conf. Сега за индикация за преминаване в режим на възстановяване след срив следва се използват файловете recovery.signal и standby.signal.

Източник: opennet.ru

Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри 🔥 Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри | ProHoster