PG中的常见参数配置

0    479    2

Tags:

👉 本文共约6894个字,系统预计阅读时间或需26分钟。

优化参数

shared_buffers

参考:https://www.xmmup.com/pgzhongdeshared_bufferscanshupeizhi.html

wal_buffers

PostgreSQL将其WAL(预写日志)记录写入缓冲区,然后将这些缓冲区刷新到磁盘。

缓冲区的默认大小,由wal_buffers定义,但如果您有大量并发连接,则较高的值可以提供更好的性能。

PostgreSQL将其WAL(预写日志)记录写入缓冲区,然后将这些缓冲区刷新到磁盘。由wal_buffers定义的缓冲区的默认大小为16MB,但如果有大量并发连接的话,则设置为一个较高的值可以提供更好的性能。

查看当前wal_buffers的值:

effective_cache_size

该effective_cache_size提供了可以用于磁盘缓存存储器的估计。

它只是一个指导原则,而不是确切分配的内存或缓存大小。

它不分配实际内存,而是告诉优化器内核中可用的缓存量。

如果将此值设置得太低,查询计划程序可以决定不使用某些索引,即使它们有用。

因此,设置较大的值总是有益的。

effective_cache_size提供可用于磁盘高速缓存的内存量的估计值。它只是一个建议值,而不是确切分配的内存或缓存大小。它不会实际分配内存,而是会告知优化器内核中可用的缓存量。在一个索引的代价估计中,更高的数值会使得索引扫描更可能被使用,更低的数值会使得顺序扫描更可能被使用。在设置这个参数时,还应该考虑PostgreSQL的共享缓冲区以及将被用于PostgreSQL数据文件的内核磁盘缓冲区。默认值是4GB。

查看当前effective_cache_size的值:

work_mem

指定在写入磁盘上的临时文件之前,ORDER BY,DISTINCT,JOIN和哈希表的内部操作将使用的内存量。

此配置用于复杂排序,如果必须进行复杂排序,则增加work_mem的值以获得良好结果。

内存中的排序比溢出到磁盘的排序快得多。

设置非常高的值可能会导致部署环境出现内存瓶颈,因为此参数是按用户排序操作。

如果您有许多用户尝试执行排序操作,系统将为所有用户分配 work_mem * 总排序操作 。

全局设置此参数可能会导致内存使用率过高,强烈建议在会话级别修改它。

初始查询的排序节点的估计成本为514431.86。成本是一个任意的计算单位。对于上面的查询,我们的work_mem只有2MB。出于测试目的,让我们将其增加到256MB并查看是否对成本有任何影响。

查询成本从514431.86减少到360617.36 - 减少30%。

此配置用于复合排序。内存中的排序比溢出到磁盘的排序快得多,设置非常高的值可能会导致部署环境出现内存瓶颈,因为此参数是按用户排序操作。如果有多个用户尝试执行排序操作,则系统将为所有用户分配大小为work_mem *总排序操作数的空间。全局设置此参数可能会导致内存使用率过高,因此强烈建议在会话级别修改此参数值。默认值为4MB。

查看当前work_mem的值:

maintenance_work_mem

maintenance_work_mem是用于维护任务的内存设置。默认值为64MB。

设置较大的值有助于执行VACUUM,RESTORE,CREATE INDEX,ADD FOREIGN KEY和ALTER TABLE等任务。

由于会话中只能同时执行其中一个操作,并且通常没有多个同时运行,因此它可能比work_mem大。

较大的配置可以提高VACUUM和数据库还原的性能。

执行autovacuum时,可以为此内存分配autovacuum_max_workers参数的配置次数,因此我们必须考虑这一点,或者配置autovacuum_work_mem参数来单独管理它。本参数可以针对每个session设置。

当maintenance_work_mem设置为仅10MB时,索引创建时间为170091.371ms,但当我们将maintenance_work_mem设置增加到256MB时,该时间减少到111274.903 ms。

maintenance_work_mem是用于维护任务的内存设置。默认值为64MB。设置较大的值对于VACUUM,RESTORE,CREATE INDEX,ADD FOREIGN KEY和ALTER TABLE等操作的性能提升效果显著。

本人提供Oracle(OCP、OCM)、MySQL(OCP)、PostgreSQL(PGCA、PGCE、PGCM)等数据库的培训和考证业务,私聊QQ646634621或微信db_bao,谢谢!
PG中的常见参数配置后续精彩内容已被小麦苗无情隐藏,请输入验证码解锁本站所有文章!
验证码:
请先关注本站微信公众号,然后回复“验证码”,获取验证码。在微信里搜索“DB宝”或者“www_xmmup_com”或者微信扫描右侧二维码都可以关注本站微信公众号。

标签:

Avatar photo

小麦苗

学习或考证,均可联系麦老师,请加微信db_bao或QQ646634621

您可能还喜欢...

发表回复

嘿,我是小麦,需要帮助随时找我哦。
  • 18509239930
  • 个人微信

  • DB宝
  • 个人邮箱
  • 点击加入QQ群
  • 个人微店

  • 回到顶部