PG 数据库常用参数调整

news2024/11/15 20:08:57

1.shard_buffers

Postgresql使用自己的缓冲区,也使用操作系统缓冲区。这意味着数据存储在内存中两次,首先是 Postgresql缓冲区,然后是操作系统缓冲区。
与其他数据库不同, Postgresql不提供直接IO。这称为双缓冲(就是磁盘中的时候读的时候先放在数据库的缓冲区,再放在操作系统缓冲区)。
Postgresql缓冲区称为 shared buffers,它是大多数操作系统最有效的可调参数。
Postgresql将用 shared buffers参数缓存如下数据:

表数据,索引,执行计划

初始化参考值:物理内存1/4

2.wal_buffer

PostgresαL将其WAL(预写日志)记录写入缓冲区,然后将这些缓冲区刷新到磁盘。
缓冲区的默认大小,由wal_ buffers定义,但如果您有大量并发连接,则较高的值可以提供更好的性能。
该缓冲区的作用是临时存放 redo log,所以分配太大不会对性能有好处,一般10MB左右。

3.effective_cache_size--默认4G

磁盘缓存存储器的估计。它只是一个指导原则,而不是确切分配的内存或缓存大小。它不分配实际内存,而是告诉优化器内核中可用的缓存量。如果将此值设置得太低,查询计划程序可以决定不使用某些索引,即使它们有用。因此,设置较大的值总是有益的建议使用默认值

4.work_mem--类似Oracle的PGA

指定在写入磁盘上的临时文件之前, ORDER BY, DISTINCT,JON和哈希表的内部操作将使用的内存量。
此配置用于复杂排序,如果必须进行复杂排序,则增加work_mem的值以获得良好结果。内存中的排序比溢出到磁盘的排序快得多。
设置非常高的值可能会导致部署环境出现内存瓶颈,因为此参数是按用户排序操作。
如果您有许多用户尝试执行排序操作,系统将为所有用户分配 work mem*总排序操作
全局设置此参数可能会导致内存使用率过高,强烈建议在会话级别修改它。
默认4M

5.maintenance_work_mem

maintenance_work_mem是用于维护在务的内存设置。默认为64MB。本参数可以针对每个 session设置。
设置较大的值有助于执行 VACUUM, RESTORE, CREATE|NDEX, ADD FOREIGN KEY和ALTER TABLE等任务。
由于会话中只能同时执行其中一个操作,并且通常没有多个同时运行,因此它可能比 work_mem大。
较大的配置可以提高 VACUUM和数据库还原的性能。
执行 autovacuum时,或者配置 autovacuum_work_mem参数来单独管理它。

6.FSYNC

如果启用了 fsync, Postgresql将尝试确保将更新写入物理磁盘,会延长响应时间对性能有一定影响。
这可确保在操作系统或硬件崩溃后可以将数据库群集恢复到一致状态。
禁用sync通常可以提高性能,但在发生电源故障或系统崩溃时可能会导致数据丢失。
从外部数据重新创建整个数据库,则建议停用 fsync。



7.synchronous_commit

指定在命令向客户端返回“成功”指示之前,事务提交是否将等待WAL记录写入磁盘。这是性能和可靠性之间的权衡。默认设置为“on'’。
可能的值包括:"on","remote_apply", "remote_write","local"和“of"
与fsync不同,用此参数不会产生任何数据库不一致的风险:操作系统或数据库崩溃可能导致丢失一些最近发生的可能提交的事务,但数据库的状态将与这些事务完全相同,未提交的将被抛弃
当性能比事务持久性更重要时,停用 synchronous_commit可能是一个有用的替代方法
这意味着成功状态与保证写入磁盘之间会存在时间差。在服务器崩溃的情况下,即使客户端在提交时收到成功消息,数据也可能丢失。在这种情况下,事务提交非常快,因为它不会等待刷新WAL文件,但可靠性受到损害。

8.checkpoint_timeout

检查点启动的时间间隔将此设置得太低会减少崩溃恢复时间,因为更多数据会写入磁盘,但由于每个检查点都会占用宝贵的系统资源,因此也会损害性能。高频率的检査点可能会影响性能。实例崩溃的机率与长时间运行的性能相比,实例崩溃所占的比重要小的多,该值设置为实例崩溃后客户允许恢复的时间。
检查点进程将数据刷新到数据文件中。
发生 CHECKPOINT时完成此活动。这是一项昂贵的操作,可能会导致大量的|O。整个过程涉及昂贵的磁盘读/写操作。
checkpoint_completion_target衡量检查点完成的时间长度。

9.checkpoint_completion_target

数据库中一个至关重要的参数,主要与参数 checkpoint_timeout(checkpoint_timeout配合使用,值越小意味着检查点要越快完成,要求写得要快。
控制每次检査点发生时i/o的吞吐量,值越高,则/o占用的资源越少,数据库性能越好;值越低,则/o占用的资源越多,影响数据库性能,但是提高检査点完成速度。
可以理解为如果这个参数设置的太大,可能会发生数据库震荡。

10.full_page_writes

全页写,把数据块写入到WAL日志中,目的是为了解决块不一致问题,保护数据的完整性,全页写会导致WAL日志膨胀,增加额外/O。
如果性能优先考虑,同时有日常数据库备份,则可以关闭。

其它参数:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1809850.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Python教程】3-控制流、循环结构与简单字符串操作

在整理自己的笔记的时候发现了当年学习python时候整理的笔记,稍微整理一下,分享出来,方便记录和查看吧。个人觉得如果想简单了解一名语言或者技术,最简单的方式就是通过菜鸟教程去学习一下。今后会从python开始重新更新&#xff0…

Vue17-条件渲染

一、使用v-show属性做条件渲染 控制元素的显示和隐藏 v-show里面也能是表达式,只要表达式的值是boolean就行。 或者 当时结构还在: 二、使用v-if属性做条件渲染 结构也不在了 三、示例 方式一: 方式二: 当元素有很高的切换频率&am…

【web本地存储】storage事件,StorageEvent对象介绍

storage事件 Web Storage API 内建了一套事件通知机制,当存储区域的内容发生改变(包括增加、修改、删除数据)时,就会自动触发storage事件,并把它发送给所有感兴趣的监听者,因此,如果需要跟踪存…

第十二届蓝桥杯单片机国赛练习代码

文章目录 前言一、问题重述二、主函数总结 前言 第十五蓝桥杯国赛落幕已有十天,是时候总结一下,这个专栏也将结束。虽然并没有取得预期的结果,但故事结尾并不总是美满的。下面是赛前练习的第十二届国赛的代码。 一、问题重述 二、主函数 完整…

万向节锁死(Gimbal Lock)

Gimbal Lock是一个常见的3D动画问题,主要由旋转顺序引起的。我来详细解释一下它的成因: 在三维空间中,任何旋转都可以分解为绕X,Y,Z三个轴的欧拉旋转(Euler Rotation)。每个轴的旋转是按照一定顺序进行的,比如XYZ或ZYX等。 理论上,通过这三个旋转值的组合,可以达到任意的空间…

MATLAB实现磷虾算法(Krill herd algorithm)

1.算法介绍 磷虾算法(Krill Herd Algorithm, KH)是一种基于生物启发的优化算法,其原理模拟了南极磷虾(Euphausia superba)群体的聚集行为。该算法旨在通过模拟磷虾个体间的相互作用、觅食行为和随机扩散,来…

设计模式 —— 观察者模式

设计模式 —— 观察者模式 什么是观察者模式观察者模式定义观察者模式的角色观察者模式的使用场景观察者模式的实现 被观察者(Subject)观察者(Observer)通知(notify)更新显示(update&#xff09…

Webpack 从入门到精通-基础篇

一、webpack 简介 1.1 webpack 是什么 webpack 是一种前端资源构建工具,一个静态模块打包器(module bundler)。 在 webpack 看来, 前端的所有资源文件(js/json/css/img/less/...)都会作为模块处理。 它将根据模块的依赖关系进行静态分析,打包生成对应的…

MYSQL六、存储引擎的认识

一、存储引擎 1、MySQL体系结构 连接层:最上层是一些客户端和链接服务,包含本地sock 通信和大多数基于客户端/服务端工具实现的类似于TCP/IP的通信。主要完成一些类似于连接处理、授权认证、及相关的安全方案。在该层上引入了线程池的概念,为…

Open vSwitch 数据包接收的实现

一、Open vSwitch 数据包的来源 Open vSwitch 中的数据包有许多种来源: 物理网络接口:OVS 可以连接到物理网络设备,并处理从这些设备收到的数据包。这些数据包可能来自外部网络,需要被转发或进一步处理。虚拟网络接口&#xff1a…

MySQL 常见客户端程序

本篇主要介绍MySQL常见的客户端程序 目录 一、mysqlcheck 二、mysqldump 三、mysqladmin 四、mysqldumpslow 五、mysqlbinlog 六、mysqlshow 显示列的具体信息​编辑 七、mysqlslap 一、mysqlcheck mysqlcheck是MySQL的表维护程序,其功能主要包含以下四个方…

遗传算法笔记:基本工作流程

1 介绍 遗传算法有5个主要任务,直到找到最终的解决方案 2 举例 2.1 问题描述 比如我们有 5 个变量和约束,其中 X1、X2、X3、X4 和 X5 是非负整数且小于 10(0、1、2、4、5、6、7、8、9)我们希望找到 X1、X2、X3、X4 和 X5 的最…

01 Linux网络设置

目录 1.1 查看及测试网络 1.1.1 查看网络配置 1. 查看网络接口地址 1. 查看活动的网络接口设备 2. 查看指定的网络接口信息 2. 查看主机名称 3. 查看路由表条目 4. 查看网络连接情况 1.1.2 测试网络连接 1. 测试网络连通性 2. 跟踪数据包的路由途径 3. 测试DNS域名解析 1.2 设…

Apache ShardingSphere实战与核心源码剖析

Apache ShardingSphere实战与核心源码剖析 1.数据库架构演变与分库分表介绍 1.1 海量数据存储问题及解决方案 如今随着互联网的发展,数据的量级也是成指数的增长,从GB到TB到PB。对数据的各种操作也是愈加的困难,传统的关系性数据库已经无法满足快速查询与插入数据的需求。…

HTML LocalStorage

一篇关于HTML本地存储的文章 Window.localStorage 只读的localStorage 属性允许你访问一个Document 源(origin)的对象 Storage;存储的数据将保存在浏览器会话中。 localStorage 类似 sessionStorage,但其区别在于:存储…

AXI_GPIO

REVIEW 关于PS端已经学习过: zynq PS端 GPIO-CSDN博客 zynq PS点灯-CSDN博客 C基础与SDK调试方法-CSDN博客 Zynq上GPIO无论是MIO还是EMIO,都是属于PS侧的资源,相当于是硬核。 而作为一个PS与PL相互协作的平台,当PS侧的GPIO硬核不…

使用opencv在图像上画带刻度线的对角线,以图像中心点为0点

使用OpenCV在图像上绘制带刻度线的对角线,可以通过以下步骤实现。我们将首先找到图像的中心点,然后绘制对角线线,并在这些线的适当位置绘制刻度线。以下是详细的C代码示例: void Draw_diagonal(cv::Mat& mat, double dFactor…

【Python教程】4-字符串、列表、字典、元组与集合操作

在整理自己的笔记的时候发现了当年学习python时候整理的笔记,稍微整理一下,分享出来,方便记录和查看吧。个人觉得如果想简单了解一名语言或者技术,最简单的方式就是通过菜鸟教程去学习一下。今后会从python开始重新更新&#xff0…

shell编程(四)—— 运算符

和其他编程语言一样,bash也有多种类型的运算符,本篇对bash的相关运算符做简单介绍。 一、运算符 1.1 算术运算符 常见的算术运算符,如加()、减(-)、乘(*)、除&#xf…

Qt安装时出现无法下载存档,环境配置,main中自定义类编译不过问题

1. Qt安装时出现无法下载存档 进入Qt安装程序exe所在的文件目录,一般在下载文件夹,右键打开cmd。cmd输入:对应的exe镜像提速。 .\qt-online-installer-windows-x64-4.8.0.exe --mirror https://mirrors.cloud.tencent.com/qt/ 2. 环境配置 …