如何计算在大型 Postgresql 表上创建索引的时间?

问题描述 投票:0回答:2

我有一个包含 2600 万行的 Postgres 表,我想添加一个索引布尔列。

在生产中尝试之前,有没有办法计算此类操作需要多长时间?

sql database postgresql indexing database-migration
2个回答
17
投票

无法计算索引时间,因为它取决于许多因素(硬件、软件、配置、负载等)

好消息是您可以

CREATE INDEX CONCURRENTLY
,这需要更长的时间,但不会锁定表。所以该操作除了服务器负载较高之外没有任何副作用。

有关一些注意事项,请查看文档


0
投票

在命令行客户端

psql
,我们可以使用
\timing
来获取每个查询的时间:

test=> \timing
Timing is on.
test=> SELECT 42;
┌──────────┐
│ ?column? │
├──────────┤
│       42 │
└──────────┘
(1 row)

Time: 0.745 ms
test=> \timing
Timing is off.

信用

© www.soinside.com 2019 - 2024. All rights reserved.