+38/050/370-3627
+38/093/220-0872
+38/044/257-2444
Новини

Опубліковано нову стабільну гілку СУБД PostgreSQL 12

Опубліковано нову стабільну гілку СУБД PostgreSQL 12

Після року розробки опубліковано нову стабільну гілку СУБД PostgreSQL 12. Оновлення для нової гілки виходитимуть протягом п'яти років до листопада 2024 року.

Основні нововведення СУБД PostgreSQL 12:

  • Додано підтримку "генерованих стовпців", значення яких обчислюється на основі виразу, що охоплює значення інших стовпців у тій же таблиці (аналог уявлень, але для окремих стовпців). Стовпці, що генеруються, можуть бути двох типів - зберігаються і віртуальні. У першому випадку значення обчислюється у момент додавання чи зміни даних, тоді як у другому - при кожному читанні з урахуванням поточного стану інших стовпців. В даний час в 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" без блокування виконання запитів;
  • Додано підтримку автоматичного inline-розгортання узагальнених табличних виразів (Common Table Expression, 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.

Інші новини

Найкраща ціна