PostgreSQL 每周新闻 2019-9-11

PostgreSQL每周新闻#322 - 2019年9月11日

_config.yml 备注:英文原文地址 img

postgres升级方法初探

Postgres12就在眼前了,因此有必要重新了解一下升级Postgres安装所涉及的内容。kaarel研究了三种不同方法的利弊。

Kaarel Moppel

容器中postgres的高可用性选择探讨

运行postgres的集群容器需要一个控制器来监视和管理集群。跟着我找寻适合你的方案。

EnterpriseDB

管理Postgres用户和角色

这是几个月前的文章了,但我们当时错过了。这真是一个遗憾,因为这是一个关于在postgres中与用户和角色合作的非常好的介绍。

Yaser Raja

postgres 12的Vacuum改进

postgres用户有时会抱怨Vacuum维护任务。好吧,Postgres12让这些东西不那么痛苦,而且更容易经常使用。

Shaun Thomas

什么是sql“关系”?

这是对“关系”概念的简短而甜蜜的介绍。这不仅仅是您熟悉的持久表,而是“事实上,任何sql查询都定义了一个新的关系。”dmitri本周还发布了一些相关文章,重新介绍了连接和聚合。

Dimitri Fontaine

从postgres数据库中获取更多信息

pganalyze总结了他们在如何提高postgres数据库3倍性能方面的经验。很多有用的最佳实践都在这里。

pganalyze

amazon rds中postgres 12数据库参数的优化

上周,jignesh向我们展示了如何在amazon rds上使用postgres 12的beta版,现在他将研究如何调整其设置以获得更好的性能。

Jignesh Shah

如何使用robin操作符在openshift上部署和管理postgres

Ankur Desai

在Debian 10上安装pgadmin 4

Shahriar Shovon

将postgresql复制到memsql的columnstore中

如何在postgresql中保存事务数据进行更新的同时,获得memsql查询的columnstore的高性能。

Oryan Moshe

💡本周提示

将查询结果转换为json

您知道postgres包含一个将查询结果行转换为json的函数吗?它被称为row_to_json。让我们创建一个包含两个人的记录的基本表,以及一个“兴趣”数组列,来处理:

CREATE TABLE people
  (name text, age int, interests text[]);

INSERT INTO people (name, age, interests)
  VALUES
  ('Jon', 12, ARRAY ['Golf', 'Food']),
  ('Jane', 45, ARRAY ['Art']);

使用row_to_json的最基本方法是使用行构造函数ROW,如下所示:

SELECT row_to_json(ROW(name, age, interests)) FROM people;

row_to_json
-----------------------------------
{"f1":"Jon","f2":12,"f3":["Golf","Food"]}
{"f1":"Jane","f2":45,"f3":["Art"]}

我们可以看到表中不同类型的数据(字符串、整数、数组)对应输出到结果中,但列名却没有!幸运的是,有一种更好的方法可以通过使用子查询来解决这个问题:

SELECT row_to_json(q1) FROM
  (SELECT * FROM people LIMIT 1) q1;

row_to_json
-----------------------------------
{"name":"Jon","age":12,"interests":["Golf","Food"]}

它与我们这里的示例没有关系,但是row_to_json有一个可选的第二个参数,可以在某些情况下“美化”输出—要启用它,您可以在上面的示例查询中使用row_to_json(q1,true)。

🗓即将举办的Postgres活动

Written on September 11, 2019