PostgreSQL OLAP 应用程序的性能技巧
Performance tips for PostgreSQL OLAP applications
我有一个 PostgreSQL OLAP 多维数据集,其中包含 5 个约 100 万行的连接表。许多用户可以通过 Web 界面过滤维度,这会在服务器上产生高工作负载。 Web 应用程序是一种分析工具,因此用户可以不断更改维度来分析他们的业务。
您能否提供一些如何提高性能的提示?
例如,使用由 Postgres 缓存的具有 5 个连接表的物化视图是一个好主意,并且用户查询该视图并且不会一次又一次地进行连接。或者在最常用的列上使用索引。
请帮忙! ::-)
您可以预先汇总您的事实 table(s)。例如,如果人们经常查看月汇总,则创建一个按月汇总的新事实 table。
Partition 你的事实 table(s),按年份
确保您有事实和维度的主键,以及维度 table 的键的索引。常用于 ORDER BY
、WHERE
和 GROUP BY
的索引列
您使用的是 PostgreSQL 的实际 OLAP 服务器前端吗?确保缓存已打开并已优化
使用 RAID 10 SSD,并确保您的机器有足够的内核和 RAM
使用browser caching、代理缓存、网络服务器缓存、ORM缓存
我有一个 PostgreSQL OLAP 多维数据集,其中包含 5 个约 100 万行的连接表。许多用户可以通过 Web 界面过滤维度,这会在服务器上产生高工作负载。 Web 应用程序是一种分析工具,因此用户可以不断更改维度来分析他们的业务。 您能否提供一些如何提高性能的提示? 例如,使用由 Postgres 缓存的具有 5 个连接表的物化视图是一个好主意,并且用户查询该视图并且不会一次又一次地进行连接。或者在最常用的列上使用索引。 请帮忙! ::-)
您可以预先汇总您的事实 table(s)。例如,如果人们经常查看月汇总,则创建一个按月汇总的新事实 table。
Partition 你的事实 table(s),按年份
确保您有事实和维度的主键,以及维度 table 的键的索引。常用于 ORDER BY
、WHERE
和 GROUP BY
您使用的是 PostgreSQL 的实际 OLAP 服务器前端吗?确保缓存已打开并已优化
使用 RAID 10 SSD,并确保您的机器有足够的内核和 RAM
使用browser caching、代理缓存、网络服务器缓存、ORM缓存