我是 Postgres 的新手。
我们使用 Postgres 在我们的项目中实现了 SCD type-2。输入文件是一个完整的刷新文件,每天大约有 3000 万条记录。
帐号是关键列。
新记录的大约数量为 20K/天。如果源中缺少记录,则该记录将在目标中以结束日期关闭。关闭的大约记录数 - 10k/天
查询的运行时间正在稳步增加。索引是否有助于加快进程?
对要使用的索引有什么建议吗?
我是 Postgres 的新手。
我们使用 Postgres 在我们的项目中实现了 SCD type-2。输入文件是一个完整的刷新文件,每天大约有 3000 万条记录。
帐号是关键列。
新记录的大约数量为 20K/天。如果源中缺少记录,则该记录将在目标中以结束日期关闭。关闭的大约记录数 - 10k/天
查询的运行时间正在稳步增加。索引是否有助于加快进程?
对要使用的索引有什么建议吗?
这 3000 万条记录是否存储为数据库中的每一行?好吧,如果是这样,那么索引(创建和维护)许多记录在某种程度上也将成为数据库的负担。但是,PostgreSQL 引入的这个新索引称为BRIN Index
它可能会对您有所帮助。几个月前我写了一篇关于这个的博客。您可以查看它,显然可以对其进行更多研究。
http://blog.bajratechnologies.com/2016/09/16/Postgres-BRIN-Index/
您将不得不查看慢速查询的执行计划,以确定索引是否有帮助以及您应该创建哪些索引。
正确的索引通常对查询有很大帮助,并且使用只读数据库,您可以根据需要创建任意数量的索引。
您应该确保在加载表后创建任何索引,因为索引会大大降低插入速度。在每日加载之前删除并重新创建表,或者截断并删除所有索引。