我有一个包含 2600 万行的 Postgres 表,我想添加一个索引布尔列。
在生产中尝试之前,有没有办法计算此类操作需要多长时间?
无法计算索引时间,因为它取决于许多因素(硬件、软件、配置、负载等)
好消息是您可以
CREATE INDEX CONCURRENTLY
,这需要更长的时间,但不会锁定表。所以该操作除了服务器负载较高之外没有任何副作用。
有关一些注意事项,请查看文档。
在命令行客户端
psql
,我们可以使用\timing
来获取每个查询的时间:
test=> \timing
Timing is on.
test=> SELECT 42;
┌──────────┐
│ ?column? │
├──────────┤
│ 42 │
└──────────┘
(1 row)
Time: 0.745 ms
test=> \timing
Timing is off.
信用。