选择 打开 改范围 完整检索页

pgsql.cc 提供对 postgresql.org 官网内容的中文翻译,由 Pigsty 团队维护。

受支持版本: 当前版本 (18) / 17 / 16 / 15 / 14
测试与开发版本: 19 / devel
不受支持的版本: 13 / 12 / 11 / 10 / 9.6 / 9.5 / 9.4 / 9.3 / 9.2 / 9.1 / 9.0
历史版本PostgreSQL 9.4 已于 2020 年 2 月结束社区维护,本页译文保留供仍在使用旧版本的读者参考。新系统请看当前版本

14.5. 非持久设置 #

持久性是一种数据库特性,保证即使服务器崩溃或断电,已提交的事务也会被记录下来。但持久性会带来显著的数据库开销,因此如果你的应用场景不需要这种保证,可以将PostgreSQL配置为以快得多的速度运行。以下配置更改可以在这些情况下提高性能。除下文特别注明的情况外,数据库软件崩溃时仍然保证持久性;使用这些设置时,只有操作系统突然停止运行才会造成数据丢失或损坏的风险。

  • 将数据库集簇的数据目录放在一个内存支持的文件系统上(即RAM磁盘)。这消除了所有的数据库磁盘 I/O,但将数据存储限制到可用的内存量(可能有交换区)。

  • 关闭fsync;不需要将数据刷入磁盘。

  • 关闭synchronous_commit;这样可能无需在每次提交时 强制将WAL写入磁盘。这种设置会在数据库崩溃时带来事务丢失的风险(但不会造成数据损坏)。

  • 关闭full_page_writes;不需要警惕部分页面写入。

  • 增加checkpoint_segmentscheckpoint_timeout; 这会降低检查点频率,但会增加/pg_wal的存储需求。

  • 创建不记录 WAL 的表 来避免WAL写入,不过这样会使表在崩溃时不再安全。

提交更正

译文有误、术语不当或页面显示问题,请到译文仓库 pgsty/pgdoc 报告译文问题。 英文原文本身的问题,请在当前版本的对应页面向上游反馈;上游不再修订已结束维护的版本。