数据库参数与调优说明

参数设置与查看

参数设置

可以通过 SET 命令进行参数设置,例如:

SET parameter =  value;

参数查看

可以通过 SHOW 命令进行参数查看,例如:

SHOW parameter;

参数说明

  • shared_buffers

    这个参数设置数据库的共享缓冲区的大小。默认通常是128 兆字节。一个合理的 shared_buffers 是系统内存的 25%。

  • effective_cach_size

    设置规划器对一个单一查询可用的有效磁盘缓冲区尺寸的假设。这个参数会被考虑在使用一个索引的代价估计中,更高的数值会使得 索引扫描更可能被使用,更低的数值会使得顺序扫描更可能被使用。这有助于规划器做出一个更好的代价估计。

  • work_mem

    设置在写入临时磁盘文件之前查询操作(例如排序或哈希表)可使用的最大内存容量。如果指定值时没有单位,则以千字节为单位。默认值是4兆字节。 注意对于一个复杂查询,可能会并行运行好几个排序或者哈希操作;每个操作都会被允许使用这个参数指定的内存量,然后才会开始写数据到临时文件。 同样,几个正在运行的会话可能并发进行这样的操作。因此被使用的总内存可能是 work_mem 值的好几倍,在选择这个值时一定要记住这一点。

  • maintenance_work_mem

    设置在维护性操作(例如VACUUM、CREATE INDEX 和 ALTER TABLE ADD FOREIGN KEY)中使用的最大的内存量。 如果指定值时没有单位,则以千字节为单位, 其默认值是 64 兆字节(64MB)。因为在一个数据库会话中,一个时刻只有一个这样的操作可以被执行,并且一个数据库安装通常不会有太多这样的操作并发执行, 把这个数值设置得比work_mem大很多是安全的。 更大的设置可以改进清理和恢复数据库转储的性能。