在 PostgreSQL 中,非持久设置(non-persistent settings)通常是在运行时更改,而不会将更改保存到 PostgreSQL 的配置文件中。这些设置通常只在当前会话中或当前事务中生效,而不会对 PostgreSQL 实例的整体行为产生永久影响。

以下是一些常见的非持久设置的例子:

1. 工作内存设置:
   - work_mem:指定每个操作员和排序运算符使用的内存量。你可以在查询中动态更改它,例如:
     SET work_mem = '100MB';

2. 查询超时设置:
   - statement_timeout:指定在查询中允许的最大执行时间(毫秒)。可以通过以下方式设置:
     SET statement_timeout = 5000; -- 设置为5秒

3. 日志级别设置:
   - client_min_messages 和 log_min_messages:用于动态设置客户端和服务器日志的最低消息级别,以决定哪些消息将被记录。
     SET client_min_messages = 'ERROR';

4. 隔离级别设置:
   - transaction_isolation:用于设置当前事务的隔离级别。可以在事务中使用以下语句更改:
     SET transaction_isolation = 'READ COMMITTED';

5. 并行查询设置:
   - max_parallel_workers 和 max_parallel_workers_per_gather:用于设置允许的最大并行工作者数量。可通过以下语句更改:
     SET max_parallel_workers = 4;

这些设置仅在当前会话或当前事务中生效,当会话或事务结束时,它们的值将被重置为配置文件中定义的默认值。要使某些设置永久生效,你需要更新 PostgreSQL 的配置文件,通常是 postgresql.conf 文件,并重新启动 PostgreSQL 服务。非持久设置主要用于在不需要重启数据库的情况下进行一些临时性的调整。


转载请注明出处:http://www.zyzy.cn/article/detail/8240/PostgreSQL