从Postgres DB中的1000万条记录表中获取记录的性能改进

时间:2015-09-05 18:51:37

标签: postgresql postgresql-performance

我有一个包含1000万条记录的分析表,为了生成图表,我必须从分析表中获取记录。其他几个表也加入了这个表,目前正在获取数据但是,即使我索引已加入的列并且我在Postgres中使用了物化视图,也需要大约10分钟。但仍然表现非常低,从物化视图执行选择查询需要5分钟。

请建议我在5秒内获得结果的一些技巧。我不想更改数据库存储结构,因为必须进行大量代码更改才能支持它。我想知道是否有一些内置的方法可以提高查询速度。

先谢谢

1 个答案:

答案 0 :(得分:1)

一般情况下,您可以通过创建更好的数据结构来解决此问题(大多数引擎都会为您提供密钥)。

但是如果你要创建一个排序列。并创建一个像树一样的结构然后你将被留给搜索率(N(log [N])而不是你现在可能面临的搜索速度。这将确保你的搜索速度一直很快。< / p>

这是关于二叉树,红黑树等。

加速的另一个实现可能是利用REDIS的所有内容,即 - 一个不错的数据库缓存层。

出于分析原因,我过去也选择使用与hadoop相关的技术。虽然在这种情况下,这可能是一个更大的迁移。