我有一个包含1000万条记录的分析表,为了生成图表,我必须从分析表中获取记录。其他几个表也加入了这个表,目前正在获取数据但是,即使我索引已加入的列并且我在Postgres中使用了物化视图,也需要大约10分钟。但仍然表现非常低,从物化视图执行选择查询需要5分钟。
请建议我在5秒内获得结果的一些技巧。我不想更改数据库存储结构,因为必须进行大量代码更改才能支持它。我想知道是否有一些内置的方法可以提高查询速度。
先谢谢
答案 0 :(得分:1)
一般情况下,您可以通过创建更好的数据结构来解决此问题(大多数引擎都会为您提供密钥)。
但是如果你要创建一个排序列。并创建一个像树一样的结构然后你将被留给搜索率(N(log [N])而不是你现在可能面临的搜索速度。这将确保你的搜索速度一直很快。< / p>
这是关于二叉树,红黑树等。
加速的另一个实现可能是利用REDIS的所有内容,即 - 一个不错的数据库缓存层。
出于分析原因,我过去也选择使用与hadoop相关的技术。虽然在这种情况下,这可能是一个更大的迁移。