(He leído mucho sobre sistemas operativos / aplicaciones de 64 bits frente a 32 bits, pero esta pregunta se refiere específicamente a las bases de datos).
Estoy tratando de entender los pros y los contras de las bases de datos de 32 bits frente a las de 64 bits y, en concreto, en qué condiciones comienza a tener sentido usar instalaciones de 64 bits.
Los sistemas de bases de datos que me interesan son: SQL Server 2008, MySQL y PostgreSQL 9.0.
He leído que las versiones anteriores a 9.0 de PostgreSQL solo vienen en 32 bits para Windows, y este artículo sobre la ejecución de PostgreSQL de 32 bits en Windows de 64 bits aclara parte de mi confusión, pero estoy buscando más información.
¿Cuándo me beneficiaría usar bases de datos de 64 bits (es decir, tamaño de la base de datos / espacio en disco, memoria del sistema disponible, tipos de sernarios de datos que se sabe que se benefician de él, qué motor de base de datos se está utilizando, etc.)?
PostgreSQL se beneficia de tener una compilación de 64 bits de dos maneras principales. Primero, los tipos de datos que pueden caber en 64 bits (enteros más grandes y tipos de marca de tiempo principalmente) se pueden pasar más eficientemente directamente en registros en lugar de usar punteros. En segundo lugar, es posible asignar más memoria para el caché de búfer dedicado de la base de datos. El punto de rendimientos decrecientes en ese sintonizable (shared_buffers) generalmente es de alrededor de 8 GB, pero estará limitado a <2 GB en un sistema de 32 bits.
Sin embargo, si está en Windows, PostgreSQL no maneja la memoria compartida de manera tan eficiente como en las plataformas UNIX-ish. El punto de disminución del rendimiento generalmente termina siendo <= 512 MB de memoria dedicada para la base de datos, ya sea que tenga una compilación de PostgreSQL de 32 o 64 bits. Será mejor que deje el resto para la memoria caché del sistema operativo en lugar de dedicarlo a la base de datos. En consecuencia, realmente no hay una gran ganancia de rendimiento que vaya de 32 a 64 bits con PostgreSQL en Windows; el principal sintonizable que normalmente se beneficiaría de tener más RAM disponible en realidad no lo utiliza muy bien.
fuente
Ejecuto MySQL en una arquitectura de 64 bits porque quiero que utilicen más eficientemente más de 4GB de memoria por hilo. En términos generales, esto debería aplicarse a todas las bases de datos.
Una de las principales diferencias entre las arquitecturas es un mayor direccionamiento que permite un mayor manejo de la memoria. Si bien la extensión de dirección física de Intel permite el direccionamiento de más de 4 GB, todavía está limitada a 4 GB por subproceso. PAE permite hasta un máximo de 64 GB.
Wikipedia tiene una comparación de 64 bits frente a 32 bits, que incluye más detalles de bajo nivel.
fuente
Tenga en cuenta que si solo tiene bibliotecas de cliente MySQL de 64 bits, obtendrá errores de "arquitectura incorrecta" cuando intente vincularlos con código de 32 bits. Esto me sucedió cuando intenté instalar enlaces de python ("pip install MySQL-python").
Se puede usar el servidor MySQL de 64 bits con un cliente MySQL de 32 bits y es una pena que el servidor de la comunidad MySQL no incluya versiones de biblioteca de cliente de 32 bits y 64 bits. La solución correcta es instalar bibliotecas de cliente MySQL adicionales de 32 bits. Sin embargo, dado que la forma más fácil de instalar MySQL parece ser la descarga binaria MySQL Community Server , y dado que el instalador de 64 bits viene solo con bibliotecas de cliente de 64 bits, la ruta de menor resistencia es simplemente descargar el instalador de 32 bits .
(todo esto, suponiendo que siempre usará conjuntos de datos muy pequeños)
fuente
Para muchas cosas, 32 bits es una victoria (siempre que pueda vivir con el espacio de direcciones), pero DB es una cosa donde incluso las bases de datos pequeñas pueden obtener un impulso real en 64 bits. De acuerdo, no sé nada sobre el servidor MS SQL, pero he visto puntos de referencia (por ejemplo, en un Sun 5 (antiguo escritorio Sun de 64 bits), 32 bits generalmente era un poco más rápido, excepto mysql, que era 30 % más rápido en 64 bits.
fuente