数据库版本:PostgreSQL 12.6 我有一个包含600,000条记录的表。 该表包含以下列: name(varchar) location_type(int)枚举值:(1,2,3) ancestry(varchar) 索引: ancestry(btree) ance...
我正在对公司的一些SQL进行性能基准测试,比较PG10和PG12。我们在代码中使用了很多CTE,而PG12没有本地优化CTE,所以PG10和PG12之间的性能是相同的。 我的下一个实验是在CTE中添加“NOT MATERIALIZED”指令,结果令人惊讶:查询时间大大缩短(在某些情况下减少了...
tl;dr: 怎样处理由jit引起的性能下降是最好的方法? 背景: 最近我从Postgres 11迁移到了12,并注意到一些查询/过程运行速度明显变慢。我进行了一些研究并测试了不同的配置 - 结果发现,jit的开销超过了其收益。我看到两种可能的解决方案: 通过运行set jit = o...
我想在Postgres的copy命令中添加冲突忽略功能。 我知道可以将数据复制到一个没有唯一索引/主键的表中,然后使用带有on conflict语法的插入操作。 但我想知道是否可以直接从COPY命令实现这个功能?
我正在使用Postgresql v12。 我创建了一个这样的排序规则: CREATE COLLATION ci (provider = icu, locale = 'tr_TR', deterministic = false); 我在一个表中使用了那个排序规则: create tabl...
我目前正在尝试创建一个带有文本列的表,该列默认情况下将比较不区分大小写。这是因为我们有一个第三方程序在我们的数据库上执行搜索。该程序使用的SELECT语句不能被更改。 抽象问题是,我们需要这个搜索不区分大小写,但它目前是区分大小写的。 我了解到Postgres 12支持非确定性排序规则,可...
在PostgreSQL(截至12.x版本)中,是否有一个标准函数可以将数据库列中的许多jsonb对象连接或合并成一个单独的jsonb对象? 我知道自从PostgreSQL 9.5以来有一个||运算符可以合并两个jsonb对象。但是我需要合并来自一列的许多jsonb对象。除非我漏掉了什么,否则...
我有一个运行在远程托管的虚拟机服务器(Windows Server 2019)上的 PostgreSQL 12.1 数据库系统(我将其称为 PGSQL)。几个月前,我们升级了服务器操作系统和 PGSQL。自那时以来,一切都基本正常,直到今天早上,我开始在几乎所有连接到此 PGSQL 实例的公司...
我一直以来都学习并理解,只有在前导列(或所有列)有谓词时才能使用索引。现在,令我惊讶的是,我注意到在以下查询中使用了GiST索引。为什么会这样呢?这是GiST索引的特殊功能吗? CREATE TABLE t1 ( i INT, j INT, k INT ); I...
在我关于Postgres 12中一些查询比11慢的问题的追踪之后,我想我已经能够缩小问题范围。似乎一个基于函数值的递归CTE是有问题的地方。 我成功地找到了一个相对简单的SQL查询,在Postgres 12.1上运行时间明显长于Postgres 11.6,大约为150毫秒对比Postgres...