持久性是数据库的一个特性,保证已提交事务的记录,即使服务器崩溃或断电。然而,持久性会显著增加数据库的负担,因此如果您的站点不需要这种保证,PostgreSQL可以配置为运行得更快。以下是您可以进行的配置更改,以在这种情况下提高性能。除非另有说明,在数据库软件崩溃的情况下仍然保证持久性;只有操作系统的突然崩溃会在使用这些设置时带来数据丢失或损坏的风险。
将数据库集簇的数据目录放在一个内存支持的文件系统上(即RAM磁盘)。这消除了所有的数据库磁盘I/O,但将数据存储限制在可用内存的数量(可能还有交换区)。
关闭fsync;不需要将数据刷入磁盘。
关闭synchronous_commit;可能不需要在每次提交时强制将WAL写入磁盘。这种设置在数据库崩溃时可能会带来事务丢失的风险(但不会导致数据损坏)。
关闭full_page_writes;不需要防范部分页面写入。
增加max_wal_size和checkpoint_timeout;这会减少检查点的频率,但会增加/pg_wal的存储需求。
创建不记录日志的表以避免WAL写入,尽管这会使表在崩溃时不安全。