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