postgresql在向列添加新数据时会重新创建索引吗?

6ss1mwsb  于 2023-04-11  发布在  PostgreSQL
关注(0)|答案(2)|浏览(227)

我创建了一个SQL表foo,如下所示

创建表

CREATE TABLE foo(id INTEGER, name TEXT) ;

插入数据

INSERT INTO foo VALUES(1, 'Alex');

创建索引

CREATE INDEX bar_idx ON foo(id) ;

现在插入一些额外的数据

INSERT INTO foo VALUES(1, 'Bob');

它是否自动更新以前在列中创建的索引?

dm7nw8vv

dm7nw8vv1#

是的,索引总是保持最新的。如果发生大量行的批量更改,您可能需要运行REINDEX,但通常不需要。

rkttyhzu

rkttyhzu2#

是的,如果你只是简单地输入数据,那么它将被更新,但是如果你插入另一行,那么你需要显式地重建或重新组织索引,以确保它反映数据的当前状态。
在您的示例中,当您在'id'属性上创建索引时,稍后当您插入另一行时,索引将更新
你必须使用REINDEX bar_idx;
虽然不必运行此

相关问题