【问题标题】:Postgres optimization checklist for large datasets大型数据集的 Postgres 优化清单
【发布时间】:2016-07-08 23:53:58
【问题描述】:

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

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

  1. Postgres db 配置参数级别
  2. 从数据库角度看的最佳实践(表和查询)

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

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

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

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

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

服务器规格如下:

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

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

【问题讨论】:

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


【解决方案1】:

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

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

如果行数是您最关心的问题,那么您的清单可以归结为:

  1. 足够的缓冲区和内存来存储所有相关索引。
  2. 运行各种频繁查询,并查看可能需要添加哪些索引以使其更快。

请注意,索引头部的频繁更新可能会产生令人不快的副作用,并且查询计划不会告诉您一切。但这是开始的地方。

【讨论】:

    猜你喜欢
    • 2019-11-21
    • 2018-12-14
    • 1970-01-01
    • 2011-06-05
    • 1970-01-01
    • 2019-09-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多