{"id":20770,"date":"2022-11-30T12:40:39","date_gmt":"2022-11-30T11:40:39","guid":{"rendered":"https:\/\/www.dbi-services.com\/blog\/?p=20770"},"modified":"2022-11-30T12:40:39","modified_gmt":"2022-11-30T11:40:39","slug":"postgresql-16-more-flexibility-for-vacuum-and-analyze","status":"publish","type":"post","link":"https:\/\/www.dbi-services.com\/blog\/postgresql-16-more-flexibility-for-vacuum-and-analyze\/","title":{"rendered":"PostgreSQL 16: More flexibility for vacuum and analyze"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\"><strong>Update 14-Dec-2022<\/strong>: <a href=\"https:\/\/www.dbi-services.com\/blog\/postgresql-16-further-reducing-tasks-that-require-superuser\/\" target=\"_blank\" rel=\"noreferrer noopener\">Please see this post,<\/a> the content here is not anymore up to date.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">While <a href=\"https:\/\/www.postgresql.org\/about\/news\/postgresql-151-146-139-1213-1118-and-1023-released-2543\/\" target=\"_blank\" rel=\"noreferrer noopener\">PostgreSQL 15.1 was released some weeks<\/a> ago PostgreSQL 16 is already under active development. Two days ago two interesting features have been committed which give you more flexibility when it comes to <a href=\"https:\/\/www.postgresql.org\/docs\/current\/sql-vacuum.html\" target=\"_blank\" rel=\"noreferrer noopener\">vacuum<\/a> and <a href=\"https:\/\/www.postgresql.org\/docs\/15\/sql-analyze.html\" target=\"_blank\" rel=\"noreferrer noopener\">analyze<\/a>. Before we dive into that lets have a look at how that works currently in PostgreSQL 15 and before.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">To start with, we need to users, one of them having a simple table:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: sql; title: ; notranslate\" title=\"\">\npostgres=# select version();\n                                                       version                                                        \n----------------------------------------------------------------------------------------------------------------------\n PostgreSQL 15.0 on x86_64-pc-linux-gnu, compiled by gcc (Debian 10.2.1-6) 10.2.1 20210110, 64-bit\n(1 row)\n\npostgres=# create user u1 with login password &#039;u1&#039;;\nCREATE ROLE\npostgres=# create user u2 with login password &#039;u2&#039;;\nCREATE ROLE\n\ufeffpostgres=# grant all on schema public to u1;\nGRANT\npostgres=# \\c postgres u1\nYou are now connected to database &quot;postgres&quot; as user &quot;u1&quot;.\npostgres=&gt; create table t1 ( a int );\nCREATE TABLE\npostgres=&gt; \n<\/pre><\/div>\n\n\n<p class=\"wp-block-paragraph\">When it comes to vacuum and analyze who is allowed to perform these operations on the t1 table, which is owned by u1? Of course the owner itself:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: sql; title: ; notranslate\" title=\"\">\npostgres=&gt; select current_user;\n current_user \n--------------\n u1\n(1 row)\n\npostgres=&gt; analyze t1;\nANALYZE\npostgres=&gt; vacuum t1;\nVACUUM\npostgres=&gt; \n<\/pre><\/div>\n\n\n<p class=\"wp-block-paragraph\">The only other user who is allowed to do that is the superuser, but not u2 or any other user which is not a superuser:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: sql; title: ; notranslate\" title=\"\">\npostgres=&gt; \\c postgres u2\nYou are now connected to database &quot;postgres&quot; as user &quot;u2&quot;.\npostgres=&gt; analyze t1;\nWARNING:  skipping &quot;t1&quot; --- only table or database owner can analyze it\nANALYZE\npostgres=&gt; vacuum t1;\nWARNING:  skipping &quot;t1&quot; --- only table or database owner can vacuum it\nVACUUM\npostgres=&gt; \\c postgres postgres\nYou are now connected to database &quot;postgres&quot; as user &quot;postgres&quot;.\npostgres=# analyze t1;\nANALYZE\npostgres=# vacuum t1;\nVACUUM\n<\/pre><\/div>\n\n\n<p class=\"wp-block-paragraph\">That&#8217;s all the options you have currently. PostgreSQL 16 will give you more flexibility with this, so lets do the same setup in the current development version of PostgreSQL:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: sql; title: ; notranslate\" title=\"\">\npostgres=# select version();\n                                               version                                                \n------------------------------------------------------------------------------------------------------\n PostgreSQL 16devel on x86_64-pc-linux-gnu, compiled by gcc (Debian 10.2.1-6) 10.2.1 20210110, 64-bit\n(1 row)\npostgres=# create user u1 with login password &#039;u1&#039;;\nCREATE ROLE\npostgres=# create user u2 with login password &#039;u2&#039;;\nCREATE ROLE\npostgres=# grant all on schema public to u1;\nGRANT\npostgres=# \\c postgres u1\nYou are now connected to database &quot;postgres&quot; as user &quot;u1&quot;.\npostgres=&gt; create table t1 ( a int );\nCREATE TABLE\npostgres=&gt; \n<\/pre><\/div>\n\n\n<p class=\"wp-block-paragraph\">By default, the behavior is exactly the same as in PostgreSQL 15. Only the owner of the table and a superuser are allowed to vacuum and analyze the t1 table. But what you can do starting with PostgreSQL 16 is, to grant these operations to another user:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: sql; title: ; notranslate\" title=\"\">\npostgres=&gt; grant analyze on t1 to u2;\nGRANT\npostgres=&gt; grant vacuum on t1 to u2;\nGRANT\npostgres=&gt; \\c postgres u2\nYou are now connected to database &quot;postgres&quot; as user &quot;u2&quot;.\npostgres=&gt; analyze t1;\nANALYZE\npostgres=&gt; vacuum t1;\nVACUUM\npostgres=&gt; \n<\/pre><\/div>\n\n\n<p class=\"wp-block-paragraph\">Of course this does not grant the right to see the data nor does it give any other permissions:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: sql; title: ; notranslate\" title=\"\">\npostgres=&gt; select * from t1;\nERROR:  permission denied for table t1\npostgres=&gt; \n<\/pre><\/div>\n\n\n<p class=\"wp-block-paragraph\">In addition two this, PostgreSQL 16 will come with two additional predefined roles:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: sql; title: ; notranslate\" title=\"\">\npostgres=&gt; select * from pg_roles where rolname in (&#039;pg_vacuum_all_tables&#039;,&#039;pg_analyze_all_tables&#039;);;\n        rolname        | rolsuper | rolinherit | rolcreaterole | rolcreatedb | rolcanlogin | rolreplication | rolconnlimit | rolpassword | rolvaliduntil | rolbypassrls | rolconfig | oid  \n-----------------------+----------+------------+---------------+-------------+-------------+----------------+--------------+-------------+---------------+--------------+-----------+------\n pg_vacuum_all_tables  | f        | t          | f             | f           | f           | f              |           -1 | ********    |               | f            |           | 4549\n pg_analyze_all_tables | f        | t          | f             | f           | f           | f              |           -1 | ********    |               | f            |           | 4550\n(2 rows)\n<\/pre><\/div>\n\n\n<p class=\"wp-block-paragraph\">These roles, when granted to someone, also give the permissions for the vacuum and analyze operations.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Update 14-Dec-2022: Please see this post, the content here is not anymore up to date. While PostgreSQL 15.1 was released some weeks ago PostgreSQL 16 is already under active development. Two days ago two interesting features have been committed which give you more flexibility when it comes to vacuum and analyze. Before we dive into&hellip;&nbsp;<\/p>\n","protected":false},"author":28,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"neve_meta_sidebar":"","neve_meta_container":"","neve_meta_enable_content_width":"","neve_meta_content_width":0,"neve_meta_title_alignment":"","neve_meta_author_avatar":"","neve_post_elements_order":"","neve_meta_disable_header":"","neve_meta_disable_footer":"","neve_meta_disable_title":"","neve_meta_reading_time":"","_themeisle_gutenberg_block_has_review":false,"footnotes":""},"categories":[4133],"tags":[],"class_list":["post-20770","post","type-post","status-publish","format-standard","hentry","category-database"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v28.8 (Yoast SEO v28.8) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>PostgreSQL 16: More flexibility for vacuum and analyze - dbi services | Blog<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.dbi-services.com\/blog\/postgresql-16-more-flexibility-for-vacuum-and-analyze\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"PostgreSQL 16: More flexibility for vacuum and analyze\" \/>\n<meta property=\"og:description\" content=\"Update 14-Dec-2022: Please see this post, the content here is not anymore up to date. While PostgreSQL 15.1 was released some weeks ago PostgreSQL 16 is already under active development. Two days ago two interesting features have been committed which give you more flexibility when it comes to vacuum and analyze. Before we dive into&hellip;&nbsp;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.dbi-services.com\/blog\/postgresql-16-more-flexibility-for-vacuum-and-analyze\/\" \/>\n<meta property=\"og:site_name\" content=\"dbi services | Blog\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/dbiservices\/\" \/>\n<meta property=\"article:published_time\" content=\"2022-11-30T11:40:39+00:00\" \/>\n<meta name=\"author\" content=\"Open source Team\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@dbiservices\" \/>\n<meta name=\"twitter:site\" content=\"@dbiservices\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Open source Team\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/postgresql-16-more-flexibility-for-vacuum-and-analyze\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/postgresql-16-more-flexibility-for-vacuum-and-analyze\\\/\"},\"author\":{\"name\":\"Open source Team\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/#\\\/schema\\\/person\\\/0b4548362cac3eeff8b3eaf329e3530a\"},\"headline\":\"PostgreSQL 16: More flexibility for vacuum and analyze\",\"datePublished\":\"2022-11-30T11:40:39+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/postgresql-16-more-flexibility-for-vacuum-and-analyze\\\/\"},\"wordCount\":262,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/#organization\"},\"articleSection\":[\"Database\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/postgresql-16-more-flexibility-for-vacuum-and-analyze\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/postgresql-16-more-flexibility-for-vacuum-and-analyze\\\/\",\"url\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/postgresql-16-more-flexibility-for-vacuum-and-analyze\\\/\",\"name\":\"PostgreSQL 16: More flexibility for vacuum and analyze - dbi services | Blog\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/#website\"},\"datePublished\":\"2022-11-30T11:40:39+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/postgresql-16-more-flexibility-for-vacuum-and-analyze\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/postgresql-16-more-flexibility-for-vacuum-and-analyze\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/postgresql-16-more-flexibility-for-vacuum-and-analyze\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Accueil\",\"item\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"PostgreSQL 16: More flexibility for vacuum and analyze\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/\",\"name\":\"dbi services Blog\",\"description\":\"#BeSharing\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/#organization\"},\"alternateName\":\"dbi Blog\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/#organization\",\"name\":\"dbi services\",\"alternateName\":\"dbi\",\"url\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/09\\\/dbi-services-logo.png\",\"contentUrl\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/09\\\/dbi-services-logo.png\",\"width\":512,\"height\":512,\"caption\":\"dbi services\"},\"image\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/dbiservices\\\/\",\"https:\\\/\\\/x.com\\\/dbiservices\",\"https:\\\/\\\/www.linkedin.com\\\/company\\\/dbi-services\\\/\",\"https:\\\/\\\/www.youtube.com\\\/user\\\/dbiservices\"],\"description\":\"Swiss IT consulting and services company specialised in efficient data infrastructures and platforms: databases, application servers, cloud, DevOps, digitalization, analytics, data quality and monitoring. Headquartered in Del\u00e9mont with offices in Nyon, Basel, Bern and Zurich.\",\"email\":\"info@dbi-services.com\",\"telephone\":\"+41 32 422 96 00\",\"legalName\":\"dbi services SA\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/#\\\/schema\\\/person\\\/0b4548362cac3eeff8b3eaf329e3530a\",\"name\":\"Open source Team\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/wp-content\\\/uploads\\\/2022\\\/05\\\/open-source-author.png\",\"url\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/wp-content\\\/uploads\\\/2022\\\/05\\\/open-source-author.png\",\"contentUrl\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/wp-content\\\/uploads\\\/2022\\\/05\\\/open-source-author.png\",\"caption\":\"Open source Team\"},\"description\":\"Posts published under the Open source Team account are collective contributions by the dbi services open infrastructure consultants. The practice covers open-source databases and platforms, PostgreSQL first of all, along with MySQL, MariaDB, and Linux, from architecture, replication, and high availability to performance tuning and operations under service level agreements, and contributes actively to the PostgreSQL community.\",\"url\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/author\\\/open-source-team\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"PostgreSQL 16: More flexibility for vacuum and analyze - dbi services | Blog","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.dbi-services.com\/blog\/postgresql-16-more-flexibility-for-vacuum-and-analyze\/","og_locale":"en_US","og_type":"article","og_title":"PostgreSQL 16: More flexibility for vacuum and analyze","og_description":"Update 14-Dec-2022: Please see this post, the content here is not anymore up to date. While PostgreSQL 15.1 was released some weeks ago PostgreSQL 16 is already under active development. Two days ago two interesting features have been committed which give you more flexibility when it comes to vacuum and analyze. Before we dive into&hellip;&nbsp;","og_url":"https:\/\/www.dbi-services.com\/blog\/postgresql-16-more-flexibility-for-vacuum-and-analyze\/","og_site_name":"dbi services | Blog","article_publisher":"https:\/\/www.facebook.com\/dbiservices\/","article_published_time":"2022-11-30T11:40:39+00:00","author":"Open source Team","twitter_card":"summary_large_image","twitter_creator":"@dbiservices","twitter_site":"@dbiservices","twitter_misc":{"Written by":"Open source Team","Est. reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.dbi-services.com\/blog\/postgresql-16-more-flexibility-for-vacuum-and-analyze\/#article","isPartOf":{"@id":"https:\/\/www.dbi-services.com\/blog\/postgresql-16-more-flexibility-for-vacuum-and-analyze\/"},"author":{"name":"Open source Team","@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/0b4548362cac3eeff8b3eaf329e3530a"},"headline":"PostgreSQL 16: More flexibility for vacuum and analyze","datePublished":"2022-11-30T11:40:39+00:00","mainEntityOfPage":{"@id":"https:\/\/www.dbi-services.com\/blog\/postgresql-16-more-flexibility-for-vacuum-and-analyze\/"},"wordCount":262,"commentCount":0,"publisher":{"@id":"https:\/\/www.dbi-services.com\/blog\/#organization"},"articleSection":["Database"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.dbi-services.com\/blog\/postgresql-16-more-flexibility-for-vacuum-and-analyze\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.dbi-services.com\/blog\/postgresql-16-more-flexibility-for-vacuum-and-analyze\/","url":"https:\/\/www.dbi-services.com\/blog\/postgresql-16-more-flexibility-for-vacuum-and-analyze\/","name":"PostgreSQL 16: More flexibility for vacuum and analyze - dbi services | Blog","isPartOf":{"@id":"https:\/\/www.dbi-services.com\/blog\/#website"},"datePublished":"2022-11-30T11:40:39+00:00","breadcrumb":{"@id":"https:\/\/www.dbi-services.com\/blog\/postgresql-16-more-flexibility-for-vacuum-and-analyze\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.dbi-services.com\/blog\/postgresql-16-more-flexibility-for-vacuum-and-analyze\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.dbi-services.com\/blog\/postgresql-16-more-flexibility-for-vacuum-and-analyze\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"https:\/\/www.dbi-services.com\/blog\/"},{"@type":"ListItem","position":2,"name":"PostgreSQL 16: More flexibility for vacuum and analyze"}]},{"@type":"WebSite","@id":"https:\/\/www.dbi-services.com\/blog\/#website","url":"https:\/\/www.dbi-services.com\/blog\/","name":"dbi services Blog","description":"#BeSharing","publisher":{"@id":"https:\/\/www.dbi-services.com\/blog\/#organization"},"alternateName":"dbi Blog","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.dbi-services.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.dbi-services.com\/blog\/#organization","name":"dbi services","alternateName":"dbi","url":"https:\/\/www.dbi-services.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/2026\/09\/dbi-services-logo.png","contentUrl":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/2026\/09\/dbi-services-logo.png","width":512,"height":512,"caption":"dbi services"},"image":{"@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/dbiservices\/","https:\/\/x.com\/dbiservices","https:\/\/www.linkedin.com\/company\/dbi-services\/","https:\/\/www.youtube.com\/user\/dbiservices"],"description":"Swiss IT consulting and services company specialised in efficient data infrastructures and platforms: databases, application servers, cloud, DevOps, digitalization, analytics, data quality and monitoring. Headquartered in Del\u00e9mont with offices in Nyon, Basel, Bern and Zurich.","email":"info@dbi-services.com","telephone":"+41 32 422 96 00","legalName":"dbi services SA"},{"@type":"Person","@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/0b4548362cac3eeff8b3eaf329e3530a","name":"Open source Team","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/2022\/05\/open-source-author.png","url":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/2022\/05\/open-source-author.png","contentUrl":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/2022\/05\/open-source-author.png","caption":"Open source Team"},"description":"Posts published under the Open source Team account are collective contributions by the dbi services open infrastructure consultants. The practice covers open-source databases and platforms, PostgreSQL first of all, along with MySQL, MariaDB, and Linux, from architecture, replication, and high availability to performance tuning and operations under service level agreements, and contributes actively to the PostgreSQL community.","url":"https:\/\/www.dbi-services.com\/blog\/author\/open-source-team\/"}]}},"_links":{"self":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/20770","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/users\/28"}],"replies":[{"embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/comments?post=20770"}],"version-history":[{"count":0,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/20770\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/media?parent=20770"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/categories?post=20770"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/tags?post=20770"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}