相关疑难解决方法(0)

PostgreSQL可以索引数组列吗?

我在文档中找不到这个问题的明确答案.如果列是数组类型,是否会对所有输入的值进行单独索引?

我创建了一个包含一int[]列的简单表,并在其上放置了一个唯一索引.我注意到我无法添加相同的整数数组,这使我相信索引是数组项的组合,而不是每个项的索引.

INSERT INTO "Test"."Test" VALUES ('{10, 15, 20}');
INSERT INTO "Test"."Test" VALUES ('{10, 20, 30}');

SELECT * FROM "Test"."Test" WHERE 20 = ANY ("Column1");
Run Code Online (Sandbox Code Playgroud)

索引是否有助于此查询?

arrays postgresql indexing

132
推荐指数
3
解决办法
7万
查看次数

使用数据类型"text"存储字符串的任何缺点?

根据Postgres文档,它们支持3种数据类型的字符数据:

character varying(n), varchar(n)  variable-length with limit
character(n), char(n)             fixed-length, blank padded
text                              variable unlimited length
Run Code Online (Sandbox Code Playgroud)

在我的应用程序中,我遇到了一些令人不愉快的情况,其中插入/更新查询失败,因为要插入的所需文本超出varchar(n)char(n)限制.

对于这种情况,更改此类列的数据类型就text足够了.

我的问题是:
如果我们概括并更改每个字符存储列的数据类型text,那么性能/内存方面是否有任何缺点?
如果数据类型的列text每次都存储10个或更少的字符,我应该选择text还是varchar(10)
如果我追求的text是什么?

sql postgresql types postgresql-performance

15
推荐指数
3
解决办法
6581
查看次数

如何在postgresql gist索引类型中使用uuid?

我不能直接使用uist和gist索引

CREATE INDEX idx_leaderboads_values_gist
  ON leaderboard_entry
  USING gist
  (id_leaderboard , value);
Run Code Online (Sandbox Code Playgroud)

我收到了这个错误:

错误:数据类型uuid没有访问方法"gist"的默认运算符类

提示:您必须为索引指定运算符类,或者为数据类型定义默认运算符类.

postgresql indexing uuid gist-index

8
推荐指数
2
解决办法
3115
查看次数

具有异构数据类型的3个字段的多列索引

我有一个包含3个字段的postgres表:

  • a:postgis几何
  • b:array varchar []
  • c:整数

我有一个涉及所有这些问题的查询.我想添加一个多列索引来加速它,但我不能因为它们的性质而不能将3个字段放在同一个索引下.

这种情况下的策略是什么?添加3个索引gist,gin和btree以及postgres将在查询期间使用它们吗?

postgresql indexing postgis postgresql-performance

7
推荐指数
1
解决办法
4954
查看次数