gpt4 book ai didi

PostgreSQL。全文搜索性能

转载 作者:行者123 更新时间:2023-11-29 12:13:08 28 4
gpt4 key购买 nike

全部!我有一个在 PostgreSQL 9.3 中创建的表,其中包含具有以下结构的大约 2400 万条记录:

CREATE TABLE jtest
(
recordid uuid NOT NULL,
details json,
tsv tsvector,
CONSTRAINT jtest_pkey PRIMARY KEY (recordid)
)
WITH (
OIDS=FALSE
);

触发器根据json内容填充的tsv列:to_tsvector('英语', json_extract_path_text(细节, '信息').

json结构中的field info有类似的内容。例如,“来自制造商 1 的牛奶”、“来自另外两家的牛奶”。包含“牛奶”的记录大约有 100 万条。

如果我使用以下查询:

select recordid from jtest where tsv @@ to_tsquery('english', 'milk');

并且不要在 tsv 列上使用任何索引,该查询大约需要 250 秒。如果我在 tsv 字段上创建 gin 索引,那么该查询大约需要 200 秒。

是否有可能提高性能?

最佳答案

答案就在问题中:

There are about 1 million records that contains "milk".

索引与否,您仍然需要检索那百万行。另请注意,如果一百万表示大多数行,Postgres 将完全忽略索引并 seq 扫描整个表。

如果您将查询更改为:索引将有所帮助:

select recordid from jtest where tsv @@ to_tsquery('english', 'rare string');

关于PostgreSQL。全文搜索性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20637509/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com