Версия на PostgreSQL 12

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

Основната иновации:

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

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

Добавяне на нов коментар