【问题标题】:Performance improvement for fetching records from a Table of 10 million records in Postgres DB从 Postgres DB 中的 1000 万条记录的表中获取记录的性能改进
【发布时间】:2015-09-05 18:51:37
【问题描述】:

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

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

提前致谢

【问题讨论】:

标签: postgresql postgresql-performance


【解决方案1】:

一般而言,您可以通过创建更好的数据结构来解决这个问题(大多数引擎在某种程度上为您使用键)。

但是如果你要创建一个排序列。并创建一个树状结构,然后您将被留给 (N(log[N]) 的搜索率,而不是您现在可能面临的搜索率。这将确保您的搜索速度总是有很大的提高。

这是关于二叉树、红黑树等的。

另一种加速实现可能是利用与 REDIS 类似的东西,即 - 一个不错的数据库缓存层。

过去出于分析原因,我也选择使用与 hadoop 相关的技术。尽管此时您的情况可能是更大的迁移。

【讨论】:

  • 是的,使用redis。正确。
猜你喜欢
  • 2014-07-09
  • 2021-10-13
  • 1970-01-01
  • 2017-11-13
  • 1970-01-01
  • 2018-02-22
  • 1970-01-01
  • 1970-01-01
  • 2019-09-14
相关资源
最近更新 更多