gpt4 book ai didi

sql - 使用索引加速左 anchor 查询?

转载 作者:搜寻专家 更新时间:2023-10-30 20:10:20 25 4
gpt4 key购买 nike

我有一个用户表,我将在其中进行大量用户名搜索,即

WHERE username LIKE 'xxx%'

这是我的测试数据库的结构:

CREATE TABLE usernames
(
id serial NOT NULL,
username character varying(64),
name character varying(64)
)

我插入了一百万个不同的名字和用户名。然后我尝试在不为两个列创建索引的情况下搜索名称和用户名 - 查询的平均时间:

SELECT * FROM usernames WHERE username LIKE 'xxx%'

为 650 毫秒。之后,我使用以下方法为用户名列创建了一个索引:

CREATE INDEX usernames_lower_idx
ON usernames
USING btree
(lower(username::text)

时间又是平均 650 毫秒。我尝试使用和不使用 lower 函数,结果相同。有什么想法可以加快速度(不使用外部搜索引擎)吗?我正在使用 PostgreSQL 9.2。

编辑 1:

"Seq Scan on usernames  (cost=0.00..24437.47 rows=95 width=64) (actual time=609.796..609.796 rows=0 loops=1)"
" Filter: ((username)::text ~~ 'asd%'::text)"
" Rows Removed by Filter: 998358"
"Total runtime: 609.897 ms"

最佳答案

create index usernames_idx on usernames (username varchar_pattern_ops);

analyze usernames;

关于sql - 使用索引加速左 anchor 查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17301029/

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