【发布时间】:2018-04-15 22:20:28
【问题描述】:
Postgres 数据库中有一个表,数据被永久插入其中。我需要快速访问数据,所以我为它创建了一个索引。我知道在大多数数据已经插入之后创建索引会更好,但我没有这样的时刻,数据或多或少是连续插入的。我应该什么时候在这样的表上创建索引?
每小时大约有 40-50 000 次插入,数据应保存数周(可能 2-3 个月)。没有更新,没有删除。
sqlite 中的旧实现每小时都有一个数据库(一个单独的文件),但创建索引花费了太多时间,并且几乎在插入后(5-10 分钟后)几乎立即需要快速访问。
【问题讨论】:
-
您可能对table partitioning 感兴趣。在这种情况下,应该为每个分区分别创建索引,通常是在创建分区之后。
-
只需创建索引,插入内容就会保持最新,有什么问题?
-
每秒插入约 11-14 次。我认为这并没有那么高到您应该过多担心插入更新的索引的影响,除非您的测试证明并非如此。
标签: database postgresql sqlite indexing