30得票4回答
取消引用JSON字符串;打印没有引号的JSON字符串

SELECT json_array_elements('["one", "two"]'::json) 给出结果 | json_array_elements | | :------------------ | | one | | two ...

25得票1回答
多个冲突目标

我在列a和列b上有两个唯一索引。我需要像这样的东西: insert into my_table (a, b) values (1, 2), (1, 2) on conflict (a) do update set c = 'a_violation' on conflict (b) do up...

24得票2回答
在Postgres中,“ctid”系统列的数据类型是什么?

Postgres系统列的文档在第5章 数据定义> 5.4 系统列中详细说明。 该页面提到oid值是“32位的”。页面上也提到事务标识符也是如此。因此,我会默认这意味着oid、tableoid、xmin、cmin、xmax和cmax都是32位整数。 但是这样就只剩下ctid系统列了。 ...

19得票2回答
在Postgres中,“过渡表”是什么意思?

描述Postgres 10中的新功能的页面提到了“触发器的过渡表”。 触发器的过渡表 通过适当地将旧行和新行暴露给查询,该功能使得AFTER STATEMENT触发器既有用又高效。在此功能之前,AFTER STATEMENT触发器无法直接访问这些行,而且解决方法复杂且性能差。现在,许多触发...

18得票1回答
如何清理Postgres WAL日志?

什么是清理WAL postgres的正确方法?我有一个超过100GB的数据库,其中pg_wal大约有600GB。此外,我还设置了2个逻辑复制。 主服务器和从服务器 - Postgres 10。 主服务器和从服务器已注释wal_keep_segments和max_wal_size。 pg_...

16得票2回答
在Postgres 10.12中使用uuid作为主键会对性能产生什么影响?(需要权威答案)

我现在面临一个抉择,需要决定是继续使用bigserial作为我的主键,还是改成uuid(非自动生成——我的API服务器将使用uuid v4生成ID并插入)。 我花了几个小时研究bigserial和uuid主键,似乎没有人对uuid的缺点达成一致意见(如果有的话)。我的数据库并不复杂:它是一系...

15得票3回答
什么是标识列?

我正在审查 PostgreSQL 的 7/01 计划的提交节,我看到 Pg 很可能很快就会获得“标识列”。 我在 information_schema.columns 中找到了一些提及,但没有太多内容。 is_identity yes_or_no Appli...

14得票1回答
为什么这个LEFT JOIN的性能比LEFT JOIN LATERAL差那么多?

我有以下表格(来自Sakila数据库): film: film_id 是主键 actor: actor_id 是主键 film_actor: film_id 和 actor_id 是对film/actor的外键 我正在选择一个特定的电影。对于这部电影,我还想要参...

13得票1回答
为什么PostgreSQL选择了更昂贵的连接顺序?

使用默认设置的PostgreSQL,加上 default_statistics_target=1000 random_page_cost=1.5 版本 PostgreSQL 10.4 on x86_64-pc-linux-musl, compiled by gcc (Alpine 6....

12得票2回答
合并 array_agg 和 unnest。

给定一个数据集(带有对值的GIN索引): key | values ------------- 1 | {4,2,1} 1 | {2,5} 2 | {4,1,3} 我想要合并这些数组: key | values ------------- 1 | {4,2,1,5} ...