相关疑难解决方法(0)

当所有值都是 36 个字符时,使用 char 和 varchar 进行索引查找会明显更快吗

我有一个旧模式(免责声明!),它使用基于哈希生成的 id 作为所有表的主键(有很多)。这种 id 的一个例子是:

922475bb-ad93-43ee-9487-d2671b886479
Run Code Online (Sandbox Code Playgroud)

改变这种方法是不可能的,但是索引访问的性能很差。撇开这可能的无数原因不谈,我注意到有一件事似乎不太理想 - 尽管所有许多表中的所有 id 值的长度都正好是 36 个字符,但列类型是varchar(36)而不是 char(36)

将列类型更改为固定长度是否会char(36)提供任何显着的索引性能优势,除了每个索引页的条目数量增加很小等之外?

即在处理固定长度类型时 postgres 的执行速度是否比处理可变长度类型快得多?

请不要提及微小的存储节省 - 与对列进行更改所需的手术相比,这无关紧要。

postgresql performance index varchar

38
推荐指数
1
解决办法
1万
查看次数

如何保留未嵌套数组中元素的原始顺序?

鉴于字符串:

'我认为 PostgreSQL 很漂亮'

我想对该字符串中找到的单个单词进行操作。本质上,我有一个单独的,我可以从中获取单词详细信息,并希望在此字典上加入该字符串的未嵌套数组。

到目前为止,我有:

select word, meaning, partofspeech
from unnest(string_to_array('I think that PostgreSQL is nifty',' ')) as word
from table t
join dictionary d
on t.word = d.wordname;
Run Code Online (Sandbox Code Playgroud)

这完成了我希望做的事情的基本原理,但它没有保留原始的词序。

相关问题:
PostgreSQL unnest() with element number

postgresql parse sorting array

22
推荐指数
1
解决办法
2万
查看次数

按索引删除数组元素

是否可以通过索引删除 Postgres 数组元素?(使用 Postgres 9.3。)

我在文档(http://www.postgresql.org/docs/9.3/static/functions-array.html)中没有看到任何相关内容,但也许我还缺少其他功能?

postgresql array

6
推荐指数
1
解决办法
1万
查看次数

标签 统计

postgresql ×3

array ×2

index ×1

parse ×1

performance ×1

sorting ×1

varchar ×1