阅读(4369) (15)

PostgreSQL 非持久设置

2021-08-18 16:05:38 更新

持久性是数据库的一个保证已提交事务的记录的特性(即使是发生服务器崩溃或断电)。 然而,持久性会明显增加数据库的负荷,因此如果你的站点不需要这个保证,PostgreSQL可以被配置成运行更快。在这种情况下,你可以调整下列配置来提高性能。除了下面列出的,在数据库软件崩溃的情况下也能保证持久性。当这些设置被使用时,只有突然的操作系统停止会产生数据丢失或损坏的风险。

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

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

  • 关闭synchronous_commit;可能不需要在每次提交时 强制把WAL写入磁盘。这种设置可能会在 数据库崩溃时带来事务丢失的风险(但是没有数据破坏)。

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

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

  • 创建不做日志的表 来避免WAL写入,不过这会让表在崩溃时不安全。