PostgreSQL 每周新闻 2019-8-7

PostgreSQL每周新闻#317 - 2019年8月7日

_config.yml

备注:英文原文地址

img

使用C写Postgres插件的初级教程

Postgres通过插件使自己容易扩展,最常见的插件是用C语言构建的。这个博客演示了如何建立一个基本的Postgres扩展项目并使其工作。

JOBIN AUGUSTINE

对比Postgres的JSONB和Couchbase

Postgres真的能通过JSONB取代‘NOSQL’文档数据库么?从一个文档数据库供应商的角度来看,这是一个有意思的话题。

DENIS ROSA (COUCHBASE)

免费的电子书:如何将你的Postgres数据库提升3倍的性能

学习我们如何为Postgres优化性能,如何500倍的降低磁盘IO。

PGANALYZE赞助商

Postgres VS MongoDB的Benchmarking:’要么透明化要么别测试’

最近有一个关于Postgres和MongoDB的基准测试,测试结果显示Postgres吊打MongoDB。MongoDB回应测试者没有将两个数据库放置在公平的测试环境之下。

ÁLVARO HERNÁNDEZ

Postgres获得终生成就奖

一个项目获得“终身成就”奖让人感觉很奇怪。好在Mark Wong、Bruce Momjian和Christophe Pettus代表PostgreSQL项目在O’Reilly的Oscon活动上接受了该奖项。

MARK WONG

Postgres对正则表达式的支持

正则表达式是描述文本搜索模式的字符序列。Postgres支持几种使用regex的方法。

MUHAMMAD HAROON

如何为Postgres程序进行linux的OOM killer设置

oom“killer”负责终止应用程序,以回收内存并防止内核崩溃。这里有一些建议,以避免它将Postgres进程干掉。

IBRAR AHMED

使用pl pgsql_check查找编译错误

plpgsql_check是一个类似于plprofiler的项目,它还能检查PL/pgSQL代码指出其中的编译错误。

AVINASH VALLARAPU

监控Postgres数据库的标准

当涉及到数据库性能时,您需要跟踪几个关键指标,它们并不都是特定于数据库的。

INFLUXDATA

为什么Postgres不会被卖掉

MYSQL之前也是一款开源数据库,oracle通过收购其母公司,接管了MYSQL项目,这种事情不会发生在Postgres。

UMAIR SHAHID

Barman 2.9:备份恢复管理工具

此版本引入了对即将发布的Postgres12的本机支持,其中包括对时间点恢复和复制管理方式的重大更改。

2NDQUADRANT

怎样将一个VARCHAR类型的数据显示为encode byte流

虽然不知道这会有什么应用场景,但是这是一个有趣的SQL。

ABBAS

💡本周提示

使用pgstattuple去查看无效的行和空闲空间

由[GitPrime提供

pgstattuple是一个内置的postgres扩展,它提供了各种函数来查看数据库中各种对象的统计信息。一种用途是检查表中有多少死行(通常是从表中删除数据时导致的)或者表中有多少可用空间。

我们来创建一个有1000行数据的表,然后看一下pgstattuple能带给我们什么。

CREATE TABLE numbers (id int);
INSERT INTO numbers SELECT * FROM generate_series(1,1000);

现在让我们来使用pgstattuple

CREATE EXTENSION pgstattuple;
SELECT * FROM public.pgstattuple('numbers');

img

这显示我们的表里有1000行数据,有0个无效tuple

让我们删掉一半的数据

DELETE FROM numbers WHERE id < 500;
SELECT * FROM public.pgstattuple('numbers');

img

现在我们得到了499的死元组计数(我们删除的行数)。但是整个表是一样的。因为那些无效tuple还存在。这可以通过运行以下命令来解决:

VACUUM numbers;

之后重新运行pgstatuple将不会显示无效行,但可用空间得到提升。表长度保持不变!这样做的原因是vacuum将清除死行并将其转换为自由空间(可以重新用于新行),但如果您真的希望Postgres重写表并释放该空间,则需要更进一步并使用vacuum full(尽管您需要注意执行此操作,在生产表上,因为它可能非常慢,并且会一直锁定表)。

本周提示由GitPrime赞助。

🗓 即将举办的Postgres活动

PGConf.Brasil 2019(8月1-3日,圣保罗)——为期三天的会议,包括讲座,教程,课程和闪电讲座。

PGDay Austria 2019(9月6日, 维纳·纽斯塔特,奥地利)

PostgreSQL Conference Asia 2019(9月8-11日,巴厘岛,印度尼西亚)

PostgresConf South Africa 2019(10月8-9日,约翰内斯堡)——提供给使用Postgres的数据库管理和开发人员互相了解的机会。

Written on August 7, 2019