14.5. 非持久性设置

持久性是数据库的功能,即使服务器崩溃或电源断电保证已提交事务的记录。 然而,持久性显著增加了数据库的开销, 所以如果你的网站并不需要这样的保证, PostgreSQL可以被配置保证运行更加快速。 以下是配置变化,可以在这种情况下提高性能。 除下文所述外,持久性仍然可以在数据库软件的崩溃的情况下得到保证, 只是突然操作系统停止造成数据丢失的风险或当使用这些设置时的崩溃。

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

  • 关闭fsync;没有必要删除写入磁盘的数据。

  • 关闭full_page_writes;避免部分页面写入没有必要。 增加checkpoint_segmentscheckpoint_timeout;这减少了检查点频率,但是增加了/pg_xlog 的存储需求。

  • 关闭synchronous_commit;这可能没有必要在每次提交时将WAL 写入磁盘。这个设置确实在只有database崩溃的情况下增加了事务丢失的风险(尽管没有

  • 数据崩溃)。