本文共 2852 字,大约阅读时间需要 9 分钟。
PostgreSQL 的环境搭建完成后,我们可以通过环境变量查看相关目录结构。以下是常见的环境变量及其作用:
export PGHOME=/usr/local/pgsqlexport PGUSER=postgresexport PGPORT=5432export PGDATA=/app/pgsql/dataexport PGLOG=/app/pgsql/log/postgres.logexport PATH=$PGHOME/bin:$PATH:$HOME/binexport LD_LIBRARY_PATH=$PGHOME/lib:$LD_LIBRARY_PATH
/usr/local/pgsql/ 是 PostgreSQL 软件的安装目录,类似于 Oracle 的 /app/oracle。在此目录下可以找到如 psql、pg_ctl 等可执行文件。
cd /usr/local/pgsqlls
/app/pgsql/data/ 是 PostgreSQL 数据目录,相当于 Oracle 中指定的数据目录。数据库参数文件、数据文件等均位于此处。
cd /app/pgsql/datals
/app/pgsql/log/ 是 PostgreSQL 的日志存储路径,可自定义配置数据库日志等信息。
cd /app/pgsql/logls
PostgreSQL 初始化完成后,会在 PGDATA 目录下生成 postgresql.conf 配置文件。默认参数已注释,生产环境建议根据需求进行优化。
max_connections=100shared_buffers=128MBdynamic_shared_memory_type=posixmax_wal_size=1GBmin_wal_size=80MBlog_timezone='PRC'datestyle='iso, mdy'timezone='PRC'lc_messages='en_US.UTF-8'lc_monetary='en_US.UTF-8'lc_numeric='en_US.UTF-8'lc_time='en_US.UTF-8'default_text_search_config='pg_catalog.english'
listen_addresses:指定服务器监听的 IP 地址,默认为 localhost。max_connections:数据库的最大并发连接数,默认为 100。shared_buffers:数据库使用的共享内存大小,默认为 128MB,建议根据系统内存调整。work_mem:单次查询操作的内存限制,默认为 4MB。maintenance_work_mem:维护性操作使用的内存,默认为 64MB。bgwriter_delay:后台写入器活动轮次间的延迟,默认为 200ms。effective_io_concurrency:磁盘预读优化,默认为 1,建议关闭以提高性能。wal_compression:启用 WAL 压缩,默认为 off,需超级用户启用。max_wal_size:WAL 的最大存储大小,默认为 1GB。log_destination:日志输出方式,默认为 stderr。log_filename:日志文件名格式,默认为 postgresql-%a.log。# 内存管理shared_buffers=16GBmax_prepared_transactions=2000work_mem=8MBmaintenance_work_mem=2GBautovacuum_work_mem=1GB# IO 优化bgwriter_delay=10msbgwriter_lru_maxpages=1000bgwriter_lru_multiplier=10.0bgwriter_flush_after=512kBeffective_io_concurrency=0# 并行优化max_worker_processes=256max_parallel_maintenance_workers=6max_parallel_workers=28# WAL 优化wal_compression=onwal_keep_segments=15archive_mode=onmax_replication_slots=64# 自动清理autovacuum=onautovacuum_vacuum_scale_factor=0.02autovacuum_analyze_scale_factor=0.01autovacuum_freeze_max_age=10000000
listen_addresses:指定数据库服务器监听的 IP 或主机名,默认为 localhost。max_connections:数据库的最大并发连接数,默认为 100。shared_buffers:数据库使用的共享内存大小,建议设置为系统内存的 25%。bgwriter_delay:后台写入器活动轮次间的延迟。effective_io_concurrency:磁盘预读优化。max_wal_size:WAL 文件的最大存储大小。min_wal_size:WAL 文件的最小存储大小。autovacuum:启用自动清理功能,默认为 on。autovacuum_vacuum_scale_factor:触发自动清理的 DML 比例。log_min_duration_statement:记录慢 SQL 的时间阈值,默认为 5s。datestyle:日期时间显示格式,默认为 ISO, mdy。timezone:数据库时区,默认为 GMT。ALTER TABLE mytable SET (autovacuum_vacuum_scale_factor=0.01);
ALTER TABLE mytable SET (fillfactor=80);
ALTER TABLE mytable SET (autovacuum_freeze_max_age=10000000);
lc_messages:设置消息显示语言,默认为系统环境。lc_time:设置日期时间显示格式,默认为系统环境。以上配置和参数设置可根据实际业务需求进行调整。建议结合业务场景,对重要表单独进行优化配置,以提升 PostgreSQL 的性能和稳定性。
转载地址:http://tsxfk.baihongyu.com/