持久性是一项数据库功能,保证即使服务器崩溃或断电,已提交的事务也会被记录。但是,持久性会增加数据库的开销,所以如果您的站点不需要这样的保证,PostgreSQL 可以配置成运行得更快。以下是可以提高性能的配置更改。除了如下所述之外,在数据库软件崩溃的情况下,持久性仍然得到保证;当使用这些设置时,只有操作系统突然崩溃才会带来数据丢失或损坏的风险。
将数据库集群的数据目录放在内存支持的文件系统中(即,RAM磁盘)。这消除了所有数据库磁盘输入/输出,但对于数据存储来说,受到可用内存量(或者可能是调换量)的限制。
关闭 fsync;无需将数据刷新至磁盘。
关闭 synchronous_commit;可能无需强制WAL写入磁盘,每次提交数据时。此设置可能会导致事务丢失(尽管数据不会损坏) - 假设数据库发生崩溃。
关闭 full_page_writes;无需防止部分页写入。
增加 max_wal_size 及 checkpoint_timeout;这减少了检查点的频率,但增加了 /pg_wal
的存储要求。
通过创建 未记录表格来避免WAL写入,但是这会导致表格不防崩溃。