持久性是数据库的一项特性,它保证已提交事务会被记录下来,即使服务器崩溃或断电也是如此。不过,持久性会显著增加数据库开销,因此如果站点并不需要这样的保证,就可以将PostgreSQL配置得运行更快。在这种情况下,可以通过调整下列配置来提升性能。除下文特别说明外,即使数据库软件崩溃,持久性仍然能够得到保证;只有操作系统突然崩溃时,这些设置才会带来数据丢失或损坏的风险。
将数据库集簇的数据目录放在一个内存支持的文件系统上(即RAM磁盘)。这消除了所有的数据库磁盘 I/O,但将数据存储限制到可用的内存量(可能有交换区)。
关闭fsync;不需要将数据刷入磁盘。
关闭synchronous_commit;这样可能无需在每次提交时 强制将WAL写入磁盘。这种设置会在数据库崩溃时带来事务丢失的风险(但不会造成数据损坏)。
关闭full_page_writes;不需要警惕部分页面写入。
增加max_wal_size和checkpoint_timeout; 这会降低检查点频率,但会增加/pg_wal的存储需求。
创建不记录日志的表 来避免WAL写入,不过这样会使表在崩溃时不再安全。
如果您发现文档中有不正确的内容、与您使用特定功能的经验不符或需要进一步说明,请使用此表单来报告文档问题。