gpt4 book ai didi

postgresql - 索引创建永远在 postgres 上进行

转载 作者:行者123 更新时间:2023-11-29 11:30:50 31 4
gpt4 key购买 nike

我试图使用 btree 索引为整数列创建索引,但它一直在(超过 2 小时!)。该表有 17.514.879 行。我没想到会花那么长时间。

将近 2.5 小时后,与数据库的连接刚刚中断。当我重新连接到它时,索引就在那里,但我不知道这个索引有多好。

我如何确定索引没有因连接丢失而困惑?

最佳答案

如何查看索引是否正常

通过psql 连接到数据库并运行\d table_name(其中table_name 是您的表的名称)。例如:

grn=# \d users
Table "public.users"
Column | Type | Modifiers
--------+------------------------+-----------
name | character varying(255) |
Indexes:
"users_name_idx" btree (name)

您会看到表架构下方列出的索引。如果索引已损坏,它将被标记为如此。

如何在不锁定整个表的情况下创建索引

您可以通过不锁定整个表但甚至更慢的方式创建索引。为此,您需要将 CONCURRENTLY 添加到 CREATE INDEX。例如:

CREATE INDEX CONCURRENTLY users_name_idx ON users(name);

如何修复损坏的索引

如果索引已损坏,您可以删除它并重新创建 CONCURRENTLY 或使用 REINDEX INDEX index_name。例如:

REINDEX INDEX users_name_idx

将重新创建 users_name_idx

关于postgresql - 索引创建永远在 postgres 上进行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41367080/

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