Postgres 没有适用于 Windows 服务器的 64 位二进制文件
引用 “由于在 Windows 上通常没有理由使用 > 256 - 512MB 的 shared_buffers,因此没有太多动力为 64 位端口投入所需的努力”
- 为什么通常没有理由在 Windows 上使用大量内存运行?
- 64 位 Linux 安装是否更高效?如果是,哪个?
该服务器有 8Gb 内存,并且这个数字可能会增加到 12Gb。我们打算将几乎所有的内存分配给 postgres。对于我正在做的事情,我可以愉快地在没有 UI 的情况下完成。
答案1
http://swik.net/PostgreSQL/Planet+Postgresql/Magnus+Hagander:+PostgreSQL+vs+64-bit+windows
Postgres 将磁盘缓存留给操作系统,因此在 Windows 上构建 64 位版本几乎没有好处。开发人员决定将时间花在更有成效、更轻松的事情上。
但是,也有一些好处,因为 64 位代码更快、更小,并且由于 Unix 版本必须针对某些架构(特别是 Itanium 和 Alpha)实现 64 位清洁,所以这项工作很久以前就完成了。
就我个人而言,我默认在 Linux 上运行专用数据库服务器。但是,您必须权衡 Windows 许可证的成本和管理技能;在我的环境中,每个人都知道如何管理 Linux 机器,而您可能需要聘请某人来做这件事,或者学习足够的知识(如果安全至关重要,这不是一个好主意)。使用哪个发行版主要取决于您的管理员当前使用什么;就我而言,那就是 Ubuntu Server Edition。
答案2
下一个版本的工作正在进行中,最有可能的是,PostgreSQL 8.5 将作为 Win64 上的原生 64 位二进制文件运行。有多少第三方组件可以工作还有待观察(例如,TCL 和 MIT Kerberos 目前在 Windows 上不提供 64 位版本),但核心数据库应该可用。
请注意,只有当您希望总 work_mem 或 shared_buffers 非常大时,这才是真正必要的。在大多数情况下,这不是问题,但例如,如果您正在运行大型数据仓库样式的查询,即使您的服务器内存很少,它也可能很有趣。但它主要是为了处理大内存系统和与第三方库的兼容性而开发的。
也就是说,PostgreSQL将要在基于 Linux/Unix 的平台上运行速度更快,因此如果您有此选项,则应使用它。PostgreSQL 是为 Unix 架构设计的,并在 Windows 上保留了此架构(例如,进程而不是线程),这使其在 Windows 上速度较慢。
至于选择哪个发行版,从 PostgreSQL 的角度来看并不重要。选择您的管理员或与您一起工作的人感到舒适的版本。
哦,安德鲁斯回答中提到的博客文章的正确网址是http://blog.hagander.net/archives/73-PostgreSQL-vs-64-bit-windows.html,其中包含对 64 位 Windows 上 32 位 PostgreSQL 的内存问题的解释。