Postgres大型数据集的优化核对表

时间:2016-03-22 07:35:54

标签: database-design scalability postgresql-9.3 postgresql-9.5

我们正在使用Postgres 9.3(计划升级到9.5)。想知道是否有一些可用于优化Postgresql服务器的清单。

我正在寻找以下级别的优化:

  1. Postgres db config参数级别
  2. 从数据库角度(表格和查询)
  3. 的最佳做法

    我拥有 5000万 记录的客户表,而交易表有 24亿 记录。

    索引如下(两个表都没有分区):

      

    客户主:CustomerId和EnrolledDate(单一索引)

         

    交易:CustomerId和InvoiceDate(单一索引)

    所有预期的报告/输出都使用上述两个表格。

    服务器规格如下:

    • OS:Ubunutu 14.04 LTS
    • CPU:16 CPU @ 2.4Ghz
    • RAM:64 GB
    • 存储:1500 GB
    • 应用程序:PostgreSQL 9.3(计划升级到9.5)

    你能帮我解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

您将永远不会找到这样的清单,因为随着数据的增长,性能瓶颈很大程度上取决于应用程序的特定读写模式。

现在,我使用过的最大的PostgreSQL数据库大小为10TB并且增长迅速。我们的挑战是读/写缩放,管理这些需要密切关注实际问题并理解事物在低层次上的工作方式。

如果行数是您主要关注的问题,那么您的核对清单可归结为:

  1. 足够的缓冲区和ram来存储所有相关索引。
  2. 运行各种频繁的查询,并查看可能需要添加哪些索引以使其快速。
  3. 请注意,索引头部的频繁更新可能会产生令人不快的副作用,并且查询计划不会告诉您所有内容。但它是从哪里开始的。