返回顶部
首页 > 资讯 > 数据库 >怎么理解PostgreSQL中的参数autovacuum_max_workers
  • 825
分享到

怎么理解PostgreSQL中的参数autovacuum_max_workers

2024-04-02 19:04:59 825人浏览 独家记忆
摘要

这篇文章主要介绍“怎么理解postgresql中的参数autovacuum_max_workers”,在日常操作中,相信很多人在怎么理解Postgresql中的参数autovacuum_max_worker

这篇文章主要介绍“怎么理解postgresql中的参数autovacuum_max_workers”,在日常操作中,相信很多人在怎么理解Postgresql中的参数autovacuum_max_workers问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么理解PostgreSQL中的参数autovacuum_max_workers”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

概览

PG的mvcC要求“过期”的数据不能马上被物理清除,而是标记为dead rows,这些dead rows后续会通过vacuuming过程清理。
vacuuming通过以下方式让数据库保持“健康”:
1.标记dead rows可用于存储新数据,这样可以避免不必要的磁盘浪费以及可以跳过dead rows以提升顺序扫描的性能;
2.更新vm(用于跟踪过期或已废弃的数据,反应在pages上)。这可以提升index-only scans的性能;
3.避免出现事务ID回卷而导致的数据库宕机。
PG提供了autovacuum机制,通过周期性的运行ANALYZE来收集最近频繁更新的数据表统计信息,基于这些统计信息autovacuum进行调度清理dead rows。

Worker个数

PG提供了配置参数autovacuum_max_workers用于配置autovacuum worker的个数,从直观的感觉来看,提升该参数意味着有更多的worker进程,可以有效的提升autovacuum的吞吐,但实际上由于autovacuum_vacuum_cost_limit参数的限制,单纯的提升autovacuum_max_workers并没有什么效果。
由于autovacuum_vacuum_cost_limit对成本的限制是全局的,也就是说该参数控制了全局的worker可达到的成本上限,就算提高了autovacuum_vacuum_cost_limit,吞吐量也不会有提升。打个比方,启用多线程往文件系统中写文件,但总的吞吐限制为10MB/s,每个线程的吞吐最多只能是(10MB/线程数)/s也就意味着不管你启用多少个线程,最高的吞吐也只能是10MB/s,除了增加线程数(autovacuum_max_workers)还需要增加总的吞吐限制(autovacuum_vacuum_cost_limit)。

个性化解决方案

PG提供了面向单个表的个性化autovacuum解决方案,可以在表级上设置autovacuum_vacuum_cost_limit、autovacuum_vacuum_cost_delay等参数。表上的autovacuum_vacuum_cost_limit参数不纳入到全局的统计数字中。

[local:/data/run/pg12]:5120 pg12@testdb=# create table t(id int);
CREATE TABLE
[local:/data/run/pg12]:5120 pg12@testdb=# ALTER TABLE t SET (autovacuum_vacuum_cost_limit = 1000);
ALTER TABLE
[local:/data/run/pg12]:5120 pg12@testdb=# ALTER TABLE t SET (autovacuum_vacuum_cost_delay = 10);
ALTER TABLE
[local:/data/run/pg12]:5120 pg12@testdb=#

到此,关于“怎么理解PostgreSQL中的参数autovacuum_max_workers”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注编程网网站,小编会继续努力为大家带来更多实用的文章!

您可能感兴趣的文档:

--结束END--

本文标题: 怎么理解PostgreSQL中的参数autovacuum_max_workers

本文链接: https://lsjlt.com/news/63527.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 怎么理解PostgreSQL中的参数autovacuum_max_workers
    这篇文章主要介绍“怎么理解PostgreSQL中的参数autovacuum_max_workers”,在日常操作中,相信很多人在怎么理解PostgreSQL中的参数autovacuum_max_worker...
    99+
    2024-04-02
  • 怎么理解PostgreSQL创建数据表时的参数fillfactor
    这篇文章主要讲解了“怎么理解PostgreSQL创建数据表时的参数fillfactor”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么理解PostgreS...
    99+
    2024-04-02
  • 怎么理解Oracl中的Remote_login_passwordfile参数
    本篇内容主要讲解“怎么理解Oracl中的Remote_login_passwordfile参数”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么理解Oracl中...
    99+
    2024-04-02
  • 分析PostgreSQL中的synchronous_commit参数
    本篇内容主要讲解“分析PostgreSQL中的synchronous_commit参数”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“分析PostgreSQL中的...
    99+
    2024-04-02
  • 怎么理解数据库中的FAL_SERVER参数
    本篇内容介绍了“怎么理解数据库中的FAL_SERVER参数”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!F...
    99+
    2024-04-02
  • 怎么理解数据库中的Standby_file_management参数
    这篇文章主要讲解了“怎么理解数据库中的Standby_file_management参数”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么理解数据库中的St...
    99+
    2024-04-02
  • 怎么理解MySQL中innodb_file_per_table参数
    这篇文章将为大家详细讲解有关怎么理解MySQL中innodb_file_per_table参数,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。 ...
    99+
    2024-04-02
  • 怎么使用PostgreSQL的配置参数checkpoint_flush_after
    本篇内容主要讲解“怎么使用PostgreSQL的配置参数checkpoint_flush_after”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么使用Pos...
    99+
    2024-04-02
  • 怎么理解Oracle中的sysctl.conf内核参数
    本篇内容介绍了“怎么理解Oracle中的sysctl.conf内核参数”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够...
    99+
    2024-04-02
  • 怎么理解Oracle中INITRANS和MAXTRANS参数
    怎么理解Oracle中INITRANS和MAXTRANS参数,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。 ...
    99+
    2024-04-02
  • 怎么理解PostgreSQL Locks中的Fast Path Locking
    这篇文章主要讲解了“怎么理解PostgreSQL Locks中的Fast Path Locking”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么理解Po...
    99+
    2024-04-02
  • PostgreSQL中与AUTOVACUUM IO相关的参数是什么
    本篇内容介绍了“PostgreSQL中与AUTOVACUUM IO相关的参数是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔...
    99+
    2024-04-02
  • 怎么理解PostgreSQL中Clock Sweep算法
    本篇内容介绍了“怎么理解PostgreSQL中Clock Sweep算法”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能...
    99+
    2024-04-02
  • 怎么理解PostgreSQL中session hang情况
    这篇文章主要介绍“怎么理解PostgreSQL中session hang情况”,在日常操作中,相信很多人在怎么理解PostgreSQL中session hang情况问题上存在疑惑,小编查阅了各式资料,整理出...
    99+
    2022-11-30
    postgresql
  • 怎么理解PostgreSQL Locks中的Lock Manager Internal Locking
    本篇内容主要讲解“怎么理解PostgreSQL Locks中的Lock Manager Internal Locking”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家...
    99+
    2024-04-02
  • 怎么理解PostgreSQL Locks中的The Deadlock Detection Algorithm
    这篇文章主要讲解了“怎么理解PostgreSQL Locks中的The Deadlock Detection Algorithm”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,...
    99+
    2024-04-02
  • 怎么理解PostgreSQL事务管理中的子事务
    本篇内容主要讲解“怎么理解PostgreSQL事务管理中的子事务”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么理解PostgreSQL事务管理中的子事务”吧...
    99+
    2024-04-02
  • 怎么理解SQL*Plus Set参数
    今天就跟大家聊聊有关怎么理解SQL*Plus Set参数,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。 利用SQL*P...
    99+
    2024-04-02
  • C++缺省参数怎么理解
    本篇内容主要讲解“C++缺省参数怎么理解”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“C++缺省参数怎么理解”吧!什么叫缺省参数?缺省参数是声明或定义函数时为函数的参数指定一个默认值。在调用该函...
    99+
    2023-06-21
  • 怎么理解PostgreSQL的PG Index Properties
    本篇内容介绍了“怎么理解PostgreSQL的PG Index Properties”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作