Реліз СУБД 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), що включають додаткові стовпці. В операції СТВОРИТИ СТАТИСТИКУ забезпечено підтримку статистики про найбільш типові значення (MCV), що дозволяє генерувати більш оптимальні плани запитів при використанні нерівномірно розподілених стовпців;
  • Реалізація секціонування (партикування) оптимізована для запитів, що охоплюють таблиці з тисячами секцій, але обмежуються вибіркою обмеженого підмножини даних. Збільшено продуктивність додавання даних до секційованих таблиць за допомогою операцій INSERT та COPY, а також забезпечено можливість додавання нових секцій через «ALTER TABLE ATTACH PARTITION» без блокування виконання запитів;
  • Додано підтримку автоматичного inline-розгортання узагальнених табличних виразів (Загальний вираз таблиці, CTE), що дозволяють використовувати тимчасові іменовані результуючі набори, що задаються оператором WITH. Inline-розгортання дозволяє підвищити продуктивність більшості запитів, але поки що застосовується тільки для нерекурсивних CTE;
  • Додана підтримка недетермінованих властивостей локалі «Collation», що дозволяє задавати правила сортування та методи зіставлення з урахуванням сенсу символів (наприклад, при сортуванні цифрових значень враховується наявність мінуса і точки перед числом та різні види написання, а при порівнянні не береться до уваги регістр символів та знака наголосу) ;
  • Додано підтримку багатофакторної аутентифікації клієнта, при якій pg_hba.conf для аутентифікації можна комбінувати аутентифікацію за SSL-сертифікатом (clientcert=verify-full) c додатковим методом аутентифікації, таким як 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

Додати коментар або відгук