PostgreSQL 每周新闻 2020-7-15

PostgreSQL每周新闻#364 - 2020年7月15日

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

PGX:使用Rust构建Postgres插件

Rust是一种非C或C++语言用于Postgres插件开发的框架。 为什么这是一件好事? 最近,Rust在更多的前沿圈子中变得非常流行,并且该语言的安全功能使其成为一种引人注目的选择。

ZomboDB

JSONB:类型的容器

Bruce提醒我们,JSONB列不仅需要保存数组或地图/哈希等集合,您还可以直接存储字符串,数字和布尔值。

Bruce Momjian

使用PostgreSQL实现高可用性[白皮书]

关键的业务应用程序需要其后端数据库集群的高可用性。 探索如何设置和部署最多四个9的企业级高可用性。 在高可用的Postgres集群白皮书中了解功能和优势。

2ndQuadrant PostgreSQL Products

如何查找一个生于1997年的Postgres bug

讲述了一个隐藏了23年的一个关于circle数据类型的bug的故事。

David Zhang

如何使用pgBouncer进行SCRAM

除了讲述了pgBouncer(连接池)如何使用SCRAM来做身份验证,还可以了解什么是SCRAM身份验证及其工作方式。

Jonathan S. Katz

什么是Postgres模板?

我们在之前的“一周提示”中介绍了这一点,但是,如果您不知道什么是模板数据库以及如何使用它们,那么这篇文很适合你。

Angelico de los Reyes

外部数据包装器FDW:Postgres的秘密武器?

外部数据包装器(通常简称为FDW)使您可以直接从PostgreSQL实例中查询远程数据库,这是它与Splitgraph(用于构建和使用“数据图像”的工具包)一起工作的方式。

Artjoms Iškovs (Splitgraph)

分布式SQL击败了构建微服务的Polyglot持久性

Polyglot持久性是版本发布的无声杀手; 分布式SQL是当今多云时代的答案。

YugabyteDB

PgTyped:TypeScript中的T类型安全 SQL

在TypeScript中使用具有保证类型安全性的原始SQL。

Adel Salakh

pgsodium:使用libsodium的Postgres扩展

libsodium是一个加密,解密,签名,密码哈希等的加密库。 我们之前发布了Alpha,现在是1.0 :-)

Michel Pelletier

💡本周提示

RANK和DENSE_RANK用于排名顺序

拿人们最喜欢的数据库系统为例子,产生了以下的例子:

CREATE TABLE databases (name TEXT, votes INT);
INSERT INTO databases VALUES
  ('Postgres', 10000),
  ('MySQL', 4522),
  ('SQLite', 9500),
  ('MongoDB', 4522),
  ('Oracle', 4580),
  ('Redis', 9500);

我们想要按顺序获得结果以及每个数据库的位置等级:

SELECT row_number() OVER (ORDER by votes DESC), * FROM databases;

img

尽管Redis与SQLite的票数相同,但Redis仍排名第三,这对我来说似乎并不公平! 现实世界中的排名通常会记录同等/并列的得分,并对相似得分的项目赋予相同的排名。

输入RANK和DENSE_RANK,这是几个窗口函数中的两个:

SELECT DENSE_RANK() OVER (ORDER by votes DESC), * FROM databases;
SELECT RANK() OVER (ORDER by votes DESC), * FROM databases;

img 区别是细微的,但是RANK为我们提供了一种更传统的排名方法,即如果有两个第二名的条目,就不再有第三名的条目。 使用DENSE_RANK的话,即使有重复,也可以确保连续排名。

⚡️快速事实:

  • DigitalOcean的托管数据库服务现在支持Postgres 12。
  • 卢卡·法拉利(Luca Ferrari)从PG-US的邮件中收到了Postgres 12纪念币。
  • Luca还希望鼓励您测试Postgres 13 beta 2。
  • PGConf.EU 2020已取消。
Written on July 15, 2020