PostgreSQL 非持久设置
持久性是数据库的一个保证已提交事务的记录的特性(即使是发生服务器崩溃或断电)。 然而,持久性会明显增加数据库的负荷,因此如果你的站点不需要这个保证,PostgreSQL可以被配置成运行更快。在这种情况下,你可以调整下列配置来提高性能。除了下面列出的,在数据库软件崩溃的情况下也能保证持久性。当这些设置被使用时,只有突然的操作系统停止会产生数据丢失或损坏的风险。
-
将数据库集簇的数据目录放在一个内存支持的文件系统上(即RAM磁盘)。这消除了所有的数据库磁盘 I/O,但将数据存储限制到可用的内存量(可能有交换区)。
-
关闭fsync;不需要将数据刷入磁盘。
-
关闭synchronous_commit;可能不需要在每次提交时 强制把WAL写入磁盘。这种设置可能会在 数据库崩溃时带来事务丢失的风险(但是没有数据破坏)。
-
关闭full_page_writes;不需要警惕部分页面写入。
-
增加max_wal_size和checkpoint_timeout; 这会降低检查点的频率,但会 增加
/pg_wal
的存储要求。 -
创建不做日志的表 来避免WAL写入,不过这会让表在崩溃时不安全。