{"id":38654,"date":"2019-10-31T22:25:05","date_gmt":"2019-10-31T19:25:05","guid":{"rendered":"https:\/\/prohoster.info\/blog\/reliz-postgresql-12\/"},"modified":"2019-10-31T22:25:05","modified_gmt":"2019-10-31T19:25:05","slug":"reliz-postgresql-12","status":"publish","type":"post","link":"https:\/\/prohoster.info\/en\/blog\/news\/reliz-postgresql-12","title":{"rendered":"PostgreSQL 12 Release","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>The PostgreSQL development team has announced the release of PostgreSQL 12, the latest version of the open-source relational database management system.<br \/>\nPostgreSQL 12 has significantly improved query performance\u2014especially when working with large volumes of data\u2014and has optimized overall disk space usage.<\/p>\n<p>Among the new features:<\/p>\n<ul>\n<li>implementation of the JSON Path query language (a key part of the SQL\/JSON standard);<\/li>\n<li>optimization of common table expressions (WITH);<\/li>\n<li>support for generated columns<\/li>\n<\/ul>\n<p>The community continues to work on the extensibility and reliability of PostgreSQL, enhancing support for internationalization, authentication capabilities, and providing simpler administration paths.<\/p>\n<p>This release features the implementation of a pluggable storage engine interface, allowing developers to create their own data storage methods.<\/p>\n<p><strong>Performance Improvements<\/strong><\/p>\n<p>PostgreSQL 12 includes significant performance improvements and maintenance procedures for indexing and partitioning systems.<\/p>\n<p>B-tree indexes\u2014the standard type of indexing in PostgreSQL\u2014have been optimized in version 12 for workloads that involve frequent index modifications. Benchmarks using the TPC-C test for PostgreSQL 12 demonstrated a 40% reduction in space usage and an overall increase in query performance.<\/p>\n<p>Queries on partitioned tables have received notable enhancements, particularly for tables comprising thousands of partitions that involve working only with limited parts of data arrays. The performance of data insertion into partitioned tables using INSERT and COPY has been improved, along with the ability to attach a new partition without blocking executing queries.<\/p>\n<p>PostgreSQL 12 has made additional enhancements in indexing that affect overall performance, including:<\/p>\n<ul>\n<li>reduced overhead in WAL generation for GiST, GIN, and SP-GiST index types;<\/li>\n<li>the ability to create so-called covering indexes (covering indexes, using the INCLUDE clause) on GiST indexes;<\/li>\n<li>the ability to perform k-nearest neighbor queries (k-NN search) using the distance operator () and utilizing SP-GiST indexes;<\/li>\n<li>Support for collecting statistics on the most common values (most-common value, MCV) using CREATE STATISTICS, which helps generate better query execution plans when using columns with unevenly distributed values.<\/li>\n<\/ul>\n<p>JIT compilation using LLVM, introduced in PostgreSQL 11, is now enabled by default. JIT compilation enhances performance when working with expressions in WHERE clauses, target lists, aggregates, and some internal operations. It is available if you compiled PostgreSQL with LLVM or are using a PostgreSQL package built with LLVM enabled.<\/p>\n<p><strong>Improvements to SQL language capabilities and compliance with standards.<\/strong><\/p>\n<p>PostgreSQL 12 introduces the ability to query JSON documents using JSON path expressions defined in the SQL\/JSON standard. Such queries can leverage existing indexing mechanisms for documents stored in JSONB format for efficient data retrieval.<\/p>\n<p>Common Table Expressions (CTEs), also known as WITH queries, in PostgreSQL 12 can now automatically be executed using substitution, which can, in turn, help improve the performance of many existing queries. In the new version, part of a WITH query can be executed with substitution only if it is not recursive, has no side effects, and is referenced only once in the subsequent part of the query.<\/p>\n<p>PostgreSQL 12 introduces support for \"generated columns.\" Defined in the SQL standard, this type of column computes its value based on the contents of other columns in the same table. In this version, PostgreSQL supports \"stored generated columns,\" where the computed value is stored on disk.<\/p>\n<p><strong>Internationalization<\/strong><\/p>\n<p>PostgreSQL 12 expands support for ICU collations, allowing users to define \"nondeterministic collations\" that can, for example, permit case-insensitive or accent-insensitive comparisons.<\/p>\n<p><strong>Authentication<\/strong><\/p>\n<p>PostgreSQL expands its support for reliable authentication methods through several enhancements that provide additional security and functionality. This release features client-side and server-side encryption for authentication via GSSAPI interfaces, along with PostgreSQL's ability to detect <a class=\"wpil_keyword_link\" href=\"https:\/\/prohoster.info\/en\/server\/\"   title=\"servers\" data-wpil-keyword-link=\"linked\"  data-wpil-monitor-id=\"1845\">servers<\/a> LDAP, if PostgreSQL is compiled with OpenLDAP.<\/p>\n<p>Additionally, PostgreSQL 12 now supports a multi-factor authentication option. The PostgreSQL server can now require the client to provide a valid <a class=\"wpil_keyword_link\" href=\"https:\/\/prohoster.info\/en\/ssl-sertifikat\/\"   title=\"SSL\" data-wpil-keyword-link=\"linked\"  data-wpil-monitor-id=\"2262\">SSL<\/a>-certificate with the corresponding username using clientcert=verify-full, and combine this with a separate authentication method requirement (e.g., scram-sha-256).<\/p>\n<p><strong>Administration<\/strong><\/p>\n<p>PostgreSQL 12 introduces the ability to perform non-blocking index rebuilds using the REINDEX CONCURRENTLY command. This allows users to avoid downtime in the DBMS during lengthy index rebuilds.<\/p>\n<p>Furthermore, in PostgreSQL 12, you can enable or disable page checksums in a cluster that is powered off using the pg_checksums command. Previously, page checksums\u2014a feature that helps verify the integrity of data stored on disk\u2014could only be enabled at the time of cluster initialization with initdb.<\/p>\n<p>Source: <a \ncontent=\"nofollow\" rel=\"nofollow\" href=\"http:\/\/www.linux.org.ru\/news\/opensource\/15269122\">linux.org.ru<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0413\u0440\u0443\u043f\u043f\u0430 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432 PostgreSQL \u043e\u0431\u044a\u044f\u0432\u0438\u043b\u0430 \u043e \u0432\u044b\u0445\u043e\u0434\u0435 PostgreSQL 12, \u043d\u043e\u0432\u0435\u0439\u0448\u0435\u0439 \u0432\u0435\u0440\u0441\u0438\u0438 \u0440\u0435\u043b\u044f\u0446\u0438\u043e\u043d\u043d\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0431\u0430\u0437\u0430\u043c\u0438 \u0434\u0430\u043d\u043d\u044b\u0445 \u0441 \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u043c \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u043c \u043a\u043e\u0434\u043e\u043c. \u0412 PostgreSQL 12 \u0437\u043d\u0430\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0443\u043b\u0443\u0447\u0448\u0435\u043d\u0430 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 \u2013 \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e \u044d\u0442\u043e \u043a\u0430\u0441\u0430\u0435\u0442\u0441\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u0431\u043e\u043b\u044c\u0448\u0438\u043c\u0438 \u043e\u0431\u044a\u0451\u043c\u0430\u043c\u0438 \u0434\u0430\u043d\u043d\u044b\u0445, \u0442\u0430\u043a\u0436\u0435 \u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u0430 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0434\u0438\u0441\u043a\u043e\u0432\u043e\u0433\u043e \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u0430 \u0432 \u0446\u0435\u043b\u043e\u043c. \u0421\u0440\u0435\u0434\u0438 \u043d\u043e\u0432\u044b\u0445 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0435\u0439: \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u044f\u0437\u044b\u043a\u0430 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 JSON Path (\u0432\u0430\u0436\u043d\u0435\u0439\u0448\u0435\u0439 \u0447\u0430\u0441\u0442\u0438 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u0430 SQL\/JSON); [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[702],"tags":[],"class_list":["post-38654","post","type-post","status-publish","format-standard","hentry","category-news"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.2 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u0413\u0440\u0443\u043f\u043f\u0430 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432 PostgreSQL \u043e\u0431\u044a\u044f\u0432\u0438\u043b\u0430 \u043e \u0432\u044b\u0445\u043e\u0434\u0435 PostgreSQL 12, \u043d\u043e\u0432\u0435\u0439\u0448\u0435\u0439 \u0432\u0435\u0440\u0441\u0438\u0438 \u0440\u0435\u043b\u044f\u0446\u0438\u043e\u043d\u043d\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0431\u0430\u0437\u0430\u043c\u0438 \u0434\u0430\u043d\u043d\u044b\u0445 \u0441 \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u043c \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u043c \u043a\u043e\u0434\u043e\u043c. \u0412 PostgreSQL 12 \u0437\u043d\u0430\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0443\u043b\u0443\u0447\u0448\u0435\u043d\u0430 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/en\/blog\/news\/reliz-postgresql-12\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.2\" \/>\n\t\t<meta property=\"og:locale\" content=\"en_US\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u0420\u0435\u043b\u0438\u0437 PostgreSQL 12 | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0413\u0440\u0443\u043f\u043f\u0430 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432 PostgreSQL \u043e\u0431\u044a\u044f\u0432\u0438\u043b\u0430 \u043e \u0432\u044b\u0445\u043e\u0434\u0435 PostgreSQL 12, \u043d\u043e\u0432\u0435\u0439\u0448\u0435\u0439 \u0432\u0435\u0440\u0441\u0438\u0438 \u0440\u0435\u043b\u044f\u0446\u0438\u043e\u043d\u043d\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0431\u0430\u0437\u0430\u043c\u0438 \u0434\u0430\u043d\u043d\u044b\u0445 \u0441 \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u043c \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u043c \u043a\u043e\u0434\u043e\u043c. \u0412 PostgreSQL 12 \u0437\u043d\u0430\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0443\u043b\u0443\u0447\u0448\u0435\u043d\u0430 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/en\/blog\/news\/reliz-postgresql-12\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2019-10-31T19:25:05+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T19:25:05+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47PostgreSQL 12 Release | ProHoster","description":"The PostgreSQL development team has announced the release of PostgreSQL 12, the latest version of the open-source relational database management system. PostgreSQL 12 significantly improves performance.","canonical_url":"https:\/\/prohoster.info\/en\/blog\/news\/reliz-postgresql-12","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"en_US","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u0420\u0435\u043b\u0438\u0437 PostgreSQL 12 | ProHoster","og:description":"\u0413\u0440\u0443\u043f\u043f\u0430 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432 PostgreSQL \u043e\u0431\u044a\u044f\u0432\u0438\u043b\u0430 \u043e \u0432\u044b\u0445\u043e\u0434\u0435 PostgreSQL 12, \u043d\u043e\u0432\u0435\u0439\u0448\u0435\u0439 \u0432\u0435\u0440\u0441\u0438\u0438 \u0440\u0435\u043b\u044f\u0446\u0438\u043e\u043d\u043d\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0431\u0430\u0437\u0430\u043c\u0438 \u0434\u0430\u043d\u043d\u044b\u0445 \u0441 \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u043c \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u043c \u043a\u043e\u0434\u043e\u043c. \u0412 PostgreSQL 12 \u0437\u043d\u0430\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0443\u043b\u0443\u0447\u0448\u0435\u043d\u0430 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c.","og:url":"https:\/\/prohoster.info\/en\/blog\/news\/reliz-postgresql-12","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2019-10-31T19:25:05+00:00","article:modified_time":"2019-10-31T19:25:05+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"38654","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-02-09 18:02:23","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 01:05:22","updated":"2026-02-09 18:02:23","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/posts\/38654","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/comments?post=38654"}],"version-history":[{"count":2,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/posts\/38654\/revisions"}],"predecessor-version":[{"id":159506,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/posts\/38654\/revisions\/159506"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/media?parent=38654"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/categories?post=38654"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/tags?post=38654"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}