## 14.5.非持久设置 [](<>) 持久性是一种数据库功能,即使服务器崩溃或断电,也能保证记录已提交的事务。然而,持久性会增加大量数据库开销,因此如果您的站点不需要这样的保证,PostgreSQL可以配置为运行得更快。以下是在这种情况下可以进行的配置更改,以提高性能。除下述情况外,数据库软件崩溃时,耐久性仍有保证;使用这些设置时,只有突然的操作系统崩溃才会造成数据丢失或损坏的风险。 - 将数据库集群的数据目录放在内存支持的文件系统(即RAM磁盘)中。这消除了所有数据库磁盘I/O,但将数据存储限制在可用内存(可能还有交换)的范围内。 - 关掉[同步](runtime-config-wal.html#GUC-FSYNC); 无需将数据刷新到磁盘。 - 关掉[同步的\_犯罪](runtime-config-wal.html#GUC-SYNCHRONOUS-COMMIT); 可能没有必要在每次提交时强制WAL写入磁盘。如果系统崩溃,此设置不存在事务丢失(但不是数据损坏)的风险*数据库*. - 关掉[满的\_页\_写](runtime-config-wal.html#GUC-FULL-PAGE-WRITES); 不需要防止部分页面写入。 - 增长[最大值\_沃尔\_大小](runtime-config-wal.html#GUC-MAX-WAL-SIZE)和[检查站\_暂停](runtime-config-wal.html#GUC-CHECKPOINT-TIMEOUT); 这降低了检查点的频率,但增加了存储需求`/普格沃尔`. - 创造[未上钩的桌子](sql-createtable.html#SQL-CREATETABLE-UNLOGGED)为了避免沃尔写道,尽管这使桌子不致于崩溃。