postgresql索引是否在插入新行时更新?

时间:2013-07-07 05:10:48

标签: insert indexing postgresql-9.2

很抱歉,如果这是一个愚蠢的问题,但每次插入行时我是否需要重新索引我的表格,或者新行在添加时会被编入索引?

4 个答案:

答案 0 :(得分:12)

来自the manual

  

创建索引后,无需进一步干预:系统将在修改表时更新索引

答案 1 :(得分:3)

http://postgresguide.com/performance/indexes.html

我认为当您插入行时,索引会更新。它在您插入数据时维护索引表上的排序。因此,如果您尝试一次添加大量行,则会导致表上的性能问题或停机。

答案 2 :(得分:2)

除了其他答案之外:PostgreSQL是一个顶尖的关系数据库。我不知道任何关系数据库系统,其中索引自动更新。

答案 3 :(得分:0)

它似乎取决于索引的类型。例如,根据https://www.postgresql.org/docs/9.5/brin-intro.html,对于BRIN索引:

  

当创建的新页面不在上一个汇总范围内时,该范围不会自动获取汇总元组;这些元组将保持未摘要状态,直到稍后调用摘要运行以创建初始摘要。可以使用brin_summarize_new_values(regclass)函数手动调用此过程,或者在VACUUM处理表时自动调用该过程。

尽管在版本10中似乎已更改。