我对 PostgreSQL 比较陌生。一个月前,我开始将一些 MySQL 数据库迁移到 PostgreSQL。
我正在寻找有关配置文件的正确内存值的帮助。
目前,我有一个在 Linux 下运行 Apache、MySQL 和 PostgreSQL 的小型专用服务器(2GB 内存)。主 MySQL 数据库的大小大约是 PostgreSQL 中主数据库的 3 倍,数据流量也是如此。
我仍然有 PostgreSQL 的默认配置文件,具有参数 shared_buffers = 32MB
. 我假设我应该增加这个值,但我不想惩罚其他数据库。我读过一些关于将 25% 的物理可用内存专用于 PostgreSQL 的内容,但我不确定。
新数据库包含七个表,其中最大的一个大约 3 MM 行。该机器目前的流量较低(每天服务大约 10000 ~ 20000 个选择),但这些值预计会增长。
我正在考虑将 shared_buffers 增加到 256MB,但我想听听对这个 RDBMS 有更多经验的用户的一些意见。
我会避免将 MySQL和PostgreSQL 放在同一台服务器上。他们争夺相同的资源。如果可以,将所有内容移植到一个 RDBMS。我的明显选择是 PostgreSQL。
然后您可以设置
shared_buffers
为 500 MB 和effective_cache_size
1.5 GB。请务必阅读手册中的提示。但我也建议添加更多物理 RAM。2 GB 并不多。对于数百万行的良好性能来说,这还不够。多几 GB 的 RAM 应该不会花费太多。
如果您必须坚持使用 Postgres 的设置 250 MB 似乎是合理的。如果 MySQL 的流量是原来的三倍,那么总体而言,更少的流量可能会更好。像 128 MB。
Postgres Wiki 中的性能优化基础知识。