我应该安装 32 位数据库还是 64 位数据库?

我应该安装 32 位数据库还是 64 位数据库?

(我已阅读了很多有关 64 位与 32 位操作系统/应用程序的文章,但这个问题专门涉及数据库。)

我试图了解 32 位和 64 位数据库的优缺点,即在什么条件下使用 64 位安装才有意义。

我感兴趣的数据库系统是:SQL Server 2008、MySQL 和 PostgreSQL 9.0。

我读到过,PostgreSQL 9.0 之前的版本只适用于 32 位 Windows,而这个关于在 64 位 Windows 上运行 32 位 PostgreSQL 的文章消除了我的一些困惑,但我正在寻找更多信息。

何时使用 64 位数据库会受益(即数据库大小/磁盘空间、可用系统内存、已知可从中受益的数据集类型、正在使用的数据库引擎等)?

答案1

在什么情况下使用 64 位安装才有意义。抱歉 - 在 64 位服务器上安装 32 位数据库有什么好处?而且 - 想象一下 - SERVER 2008R2 仅适用于 64 位。

目前,如果有机会,安装 32 位 SQL Server 版本是没有意义的。

数据库在这方面有特殊之处 - 因为它们希望在必要时使用大量内存作为缓存。远多于 32 位进程所能提供的微不足道的 2gb/3gb。PAE 则不同。即使忽略限制,PAE 内存也不等于 SQL Server 的实际内存(它仅用于一件事 - 缓存数据库页面)。

32 位操作系统 - 处于同一级别。在现代硬件上安装 32 位操作系统根本没有意义。

答案2

PostgreSQL 从 64 位版本中受益主要有两个方面。首先,适合 64 位的数据类型(主要是较大的整数和时间戳类型)可以直接在寄存器中传递,而不是使用指针,从而更加高效。其次,可以为数据库的专用缓冲区缓存分配更多内存。该可调参数(shared_buffers)的收益递减点通常约为 8GB,但在 32 位系统上将限制为 <2GB。

但是,如果您使用的是 Windows,PostgreSQL 处理共享内存的效率不如在 UNIX 平台上高。收益递减点通常最终会是 <=512MB 的数据库专用内存,无论您使用的是 32 位还是 64 位版本的 PostgreSQL。最好将其余内存留给操作系统缓存,而不是将其专用于数据库。因此,在 Windows 上,将 PostgreSQL 从 32 位升级到 64 位,性能提升并不大;通常可从更多可用 RAM 中受益的主要可调参数实际上并没有很好地利用这些内存。

答案3

我在 64 位架构上运行 MySQL,因为我希望它们能够最有效地利用每个线程超过 4GB 的内存。一般来说,这应该适用于所有数据库。

架构之间的主要区别之一是增加寻址能力可以实现更大的内存处理能力。虽然英特尔的物理地址扩展允许寻址超过 4GB,但每个线程仍然限制为 4GB。PAE 最多允许 64GB。

维基百科有一个比较64 位与 32 位相比,包含更多低级细节。

答案4

对于很多事情来说,32 位是胜利(只要您能够接受地址空间),但 DB 是即使是小型数据库在 64 位下也能获得真正提升的东西。当然,我对 MS SQL 服务器一无所知,但我看过基准测试(例如,在 Sun 5(较旧的 64 位 Sun 桌面)上),32 位通常稍快一些,但 mysql 除外,它在 64 位下快了 30%。

相关内容