实际生产环境中PG有哪些比较重要的参数,以及在不同业务场景下的优化策略?

比如实际生产环境中PG有哪些比较重要的参数,以及在不同业务场景下的优化策略
还有就是一些使用上需要注意的避坑规范
分享点总结之类的就好,给大家个方向

参与8

2同行回答

jillmejillme  CIO , 某大型银行
参数1:shared_buffer 建议值是设置成硬件内存的25%~30%参数2:wal_buffers 一般为 shared_buffer 1/32work_mem:4M 主要取决了并发数checkpoint_timeout checkpoint_completion_target checkpoint_completion_target参数是检查点完成时间的一个比例。太频繁的检查点会影响性...显示全部

参数1:shared_buffer 建议值是设置成硬件内存的25%~30%

参数2:wal_buffers 一般为 shared_buffer 1/32

work_mem:4M 主要取决了并发数

checkpoint_timeout checkpoint_completion_target checkpoint_completion_target参数是检查点完成时间的一个比例。太频繁的检查点会影响性能。为了平滑检查点操作,checkpoint_timeout必须设置成一个比较低的值。否则,操作系统会将脏页累积到一个阈值之后,触发一个大的刷脏页操作。

with-segsize 最多表分布大小范围

 

收起
互联网服务 · 2023-03-31
Mr刘先生Mr刘先生  数据库工程师 , 软通智慧
可以看一下这篇文章https://www.modb.pro/doc/5172显示全部

可以看一下这篇文章
https://www.modb.pro/doc/5172

收起
互联网服务 · 2023-03-20
浏览617

ChatGPT 回答

在保险行业中,PostgreSQL是一种常用的关系型数据库管理系统,以下是一些在实际生产环境中PG比较重要的参数和优化策略:

  1. shared_buffers:这是一个非常重要的参数,它控制着PostgreSQL使用的共享内存缓冲区的大小。在实际生产环境中,建议将其设置为物理内存的25%~50%。
  2. work_mem:这个参数控制着每个查询所使用的内存大小。在实际生产环境中,建议根据实际情况进行调整,以避免内存不足导致的性能问题。
  3. checkpoint_completion_target:这个参数控制着每个检查点的完成时间。在实际生产环境中,建议将其设置为0.9,以确保检查点能够及时完成。
  4. max_connections:这个参数控制着PostgreSQL允许的最大连接数。在实际生产环境中,建议根据实际情况进行调整,以避免连接数过多导致的性能问题。
  5. vacuum_cost_limit:这个参数控制着VACUUM操作的成本上限。在实际生产环境中,建议将其设置为1000~2000,以确保VACUUM操作能够及时完成。

在不同业务场景下,还有一些优化策略可以采用:

  1. 对于大量写入的业务场景,可以使用分区表来提高写入性能。
  2. 对于大量查询的业务场景,可以使用索引来提高查询性能。
  3. 对于大量聚合计算的业务场景,可以使用Materialized View来提高计算性能。

在使用PG时,还需要注意以下避坑规范:

  1. 避免使用SELECT *查询,应该明确指定需要查询的字段。
  2. 避免使用不必要的JOIN操作,应该尽量减少JOIN操作的数量。
  3. 避免在事务中使用大量的INSERT、UPDATE、DELETE操作,应该尽量将这些操作拆分成多个事务。
  4. 避免在查询中使用大量的子查询,应该尽量使用JOIN操作代替子查询。
  5. 避免在查询中使用大量的OR条件,应该尽量使用IN条件代替OR条件。

提问者

p14159
数据库管理员AB

问题来自

相关问题

相关资料

相关文章

问题状态

  • 发布时间:2023-03-17
  • 关注会员:4 人
  • 问题浏览:1211
  • 最近回答:2023-03-31
  • X社区推广