gpt4 book ai didi

postgresql - PostgreSQL 上的表索引以提高性能

转载 作者:行者123 更新时间:2023-11-29 14:32:17 25 4
gpt4 key购买 nike

我正在解决 PostgreSQL 上的性能问题,我有下表:

 CREATE TABLE main_transaction (
id integer NOT NULL DEFAULT nextval('main_transaction_id_seq'::regclass),
description character varying(255) NOT NULL,
request_no character varying(18),
account character varying(50),
....
)

上表有 34 列,包括 3 个 FOREIGN KEY,它有超过 100 万行数据。我有以下条件 SELECT 查询:

SELECT * FROM main_transaction
WHERE upper(request_no) LIKE upper(concat('%','20080417-0258-0697','%'))

2秒以上返回结果。我想通过使用表索引来减少工作时间。到目前为止,我已经使用了btree 索引。但是,我没有注意到任何快速结果。我的问题是,如何提高上述查询的性能?

最佳答案

搜索以 % 开头的模式的唯一机会是三元组索引:

CREATE EXTENSION pg_trgm;

CREATE INDEX ON main_transaction
USING gin (upper(request_no) gin_trgm_ops);

关于postgresql - PostgreSQL 上的表索引以提高性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49938650/

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