(J'ai beaucoup lu sur les systèmes d'exploitation / applications 64 bits et 32 bits, mais cette question concerne spécifiquement les bases de données.)
J'essaie de comprendre les avantages et les inconvénients des bases de données 32 bits par rapport à 64 bits, et notamment, dans quelles conditions cela commence à avoir du sens d'utiliser des installations 64 bits.
Les systèmes de base de données qui m'intéressent sont: SQL Server 2008, MySQL et PostgreSQL 9.0.
J'ai lu que les versions antérieures à 9.0 de PostgreSQL ne sont disponibles qu'en 32 bits pour Windows, et cet article sur l'exécution de PostgreSQL 32 bits sur Windows 64 bits dissipe une partie de ma confusion, mais je cherche plus d'informations.
Quand bénéficierais-je de l'utilisation de bases de données 64 bits (c.-à-d. Taille de la base de données / espace disque, mémoire système disponible, types de sernarios de données dont on sait qu'ils en bénéficient, quel moteur de base de données est utilisé, etc.)?
PostgreSQL a l'avantage d'avoir une version 64 bits de deux manières principales. Premièrement, les types de données qui peuvent tenir sur 64 bits (les entiers plus grands et les types d'horodatage principalement) peuvent être transmis plus efficacement directement dans les registres plutôt que d'utiliser des pointeurs. Deuxièmement, il est possible d'allouer plus de mémoire au cache tampon dédié de la base de données. Le point de diminution des retours sur ce paramètre (shared_buffers) est généralement d'environ 8 Go, mais il sera limité à <2 Go sur un système 32 bits.
Cependant, si vous êtes sous Windows, PostgreSQL ne gère pas la mémoire partagée aussi efficacement que sur les plates-formes UNIX. Le point de rendement décroissant finit généralement par être <= 512 Mo de mémoire dédiée pour la base de données, que vous ayez une version 32 bits ou 64 bits de PostgreSQL. Vous ferez mieux de laisser le reste au cache du système d'exploitation plutôt que de le consacrer à la base de données. En conséquence, il n'y a vraiment pas beaucoup de gain de performances allant de 32 à 64 bits avec PostgreSQL sur Windows; le principal accordable qui aurait normalement avantage à avoir plus de RAM disponible ne l'utilise pas vraiment très bien.
la source
J'exécute MySQL sur une architecture 64 bits parce que je veux qu'ils utilisent plus efficacement plus de 4 Go de mémoire par thread. D'une manière générale, cela devrait s'appliquer à toutes les bases de données.
L'une des principales différences entre les architectures est l'augmentation de l'adressage qui permet une meilleure gestion de la mémoire. Alors que Intel extension d'adresse physique permette l'adressage de plus de 4 Go, elle est toujours limitée à 4 Go par thread. PAE permet jusqu'à 64 Go maximum.
Wikipédia a une comparaison de 64 bits par rapport à 32 bits, qui comprend plus de détails de bas niveau.
la source
Notez que si vous ne disposez que de bibliothèques clientes MySQL 64 bits, vous obtiendrez des erreurs de "mauvaise architecture" en essayant de les lier ensemble avec du code 32 bits. Cela m'est arrivé lorsque j'ai essayé d'installer des liaisons python ("pip install MySQL-python").
On peut utiliser un serveur MySQL 64 bits avec un client MySQL 32 bits et il est dommage que le serveur de communauté MySQL n'inclue pas les versions de bibliothèque cliente 32 bits et 64 bits. La bonne solution consiste à installer des bibliothèques client MySQL 32 bits supplémentaires. Cependant, comme la façon la plus simple d'installer MySQL semble être le téléchargement binaire de MySQL Community Server , et étant donné que le programme d'installation 64 bits est fourni uniquement avec les bibliothèques clientes 64 bits, le chemin le moins résistant consiste à télécharger simplement le programme d'installation 32 bits. .
(tout cela, en supposant que vous utiliserez toujours de très petits ensembles de données)
la source
Pour tant de choses, 32 bits est une victoire (tant que vous pouvez vivre avec l'espace d'adressage), mais les bases de données sont une chose où même les petites bases de données peuvent obtenir un véritable coup de pouce en 64 bits. Certes, je ne sais rien du serveur MS SQL, mais j'ai vu des repères (par exemple, sur un Sun 5 (ancien bureau Sun 64 bits), 32 bits était généralement un peu plus rapide, sauf pour mysql, qui était de 30 % plus rapide en 64 bits.
la source