Postgres数据库中有一个表,数据正在永久插入其中。我需要快速访问数据,因此我为它创建了一个索引。我知道在已插入大部分数据后创建索引更好,但我没有这样的时刻,数据会或多或少地连续插入。我什么时候应该在这样的表上创建一个索引?
每小时约有40-50 000个插入物,数据应保存数周(可能2-3个月)。没有更新,没有删除。
sqlite中的旧实现每小时都有一个数据库(一个单独的文件),但创建索引需要花费太多时间,插入后几乎立即需要快速访问(5-10分钟后)。
答案 0 :(得分:0)
创建表格的物化视图。在视图上创建索引,而不是在表上创建。插入表格并从视图中读取。
定期刷新物质化视图,可能每5分钟一次。您也可以考虑使用CONCURRENTLY参数。
但通过这种方式,您的阅读不会获得最新的更新数据。如果没有尝试,性能特征是否可取,很难说。